J'ai un site de petites annonces, et sur la page où les annonces sont diffusées, je crée un formulaire "Envoyer un conseil à un ami" ...
Ainsi, tous ceux qui le souhaitent peuvent envoyer un conseil de l'annonce à l'adresse e-mail de certains amis.
Je suppose que le formulaire doit être soumis à une page php, non?
<form name='tip' method='post' action='tip.php'>
Tip somebody: <input name="tip_email" type="text" size="30" onfocus="tip_div(1);" onblur="tip_div(2);"/>
<input type="submit" value="Skicka Tips"/>
<input type="hidden" name="ad_id" />
</form>
Lors de la soumission du formulaire, la page est rechargée ... Je ne veux pas de ça ...
Existe-t-il un moyen de ne pas le recharger et d'envoyer le courrier? De préférence sans ajax ou jquery ...
Merci
php
javascript
html
forms
FruDe
la source
la source
<iframe>
et l'target
attribut le fera.Réponses:
Vous devrez soumettre une demande ajax pour envoyer l'e-mail sans recharger la page. Jetez un œil à http://api.jquery.com/jQuery.ajax/
Votre code doit être quelque chose du genre:
Le formulaire sera soumis en arrière-plan à la
send_email.php
page qui devra traiter la demande et envoyer le courrier électronique.la source
return false;
avant les derniers crochets fermantsJ'ai trouvé ce que je pense être un moyen plus simple. Si vous mettez un Iframe dans la page, vous pouvez y rediriger la sortie de l'action et la faire apparaître. Vous ne pouvez rien faire, bien sûr. Dans ce cas, vous pouvez définir l'affichage iframe sur aucun.
la source
action="about:blank"
$_POST["ad_id"]
Vous utilisez AJAX ou vous
la source
<form id="myGiswebForm" method="post" action="https://******/saveForm.asp" target="myiframe">
et<iframe style="display:none;" src="" name="myiframe"></iframe>
Le moyen le plus rapide et le plus simple est d'utiliser une iframe. Mettez un cadre en bas de votre page.
<iframe name="frame"></iframe>
Et dans votre forme, faites ceci.
et pour rendre le cadre invisible dans votre css.
la source
display:none;
et nonborder:0px
. J'ai essayé de modifier mais mes modifications sont rejetées par les réviseurs qui ne semblent pas prendre la peine de regarder le commentaire de modification. Veuillez modifier votre réponse pour corriger le code.Soumettre le formulaire sans recharger la page et obtenir le résultat des données soumises dans la même page
Voici une partie du code que j'ai trouvé sur Internet qui résout ce problème:
1.) IFRAME
Lorsque le formulaire sera soumis, l'action sera exécutée et ciblera l'iframe spécifique à recharger.
index.php
iframe_content.php
2.) AJAX
Index.php:
server_action.php
Mots clés: phpAjaxjquerydu côté serveurhtml
la source
C'est un must pour prendre de l'aide
jquery-ajax
dans ce cas. Sansajax
, il n'y a actuellement aucune solution.Tout d'abord, appelez une fonction JavaScript lorsque le formulaire est soumis. Juste réglé
onsubmit="func()"
. Même si la fonction est appelée, l'action par défaut de la soumission sera exécutée. Si elle est effectuée, il n'y aurait aucun moyen d'empêcher la page de se rafraîchir ou de se rediriger. La tâche suivante consiste donc à empêcher l'action par défaut. Insérez la ligne suivante au début defunc()
.Désormais, il n'y aura ni redirection ni rafraîchissement. Donc, il vous suffit de passer un appel ajax
func()
et de faire ce que vous voulez à la fin de l'appel.Exemple:
Forme:
Javascript:
la source
c'est exactement comment cela peut fonctionner sans jQuery et AJAX et cela fonctionne très bien en utilisant un simple iFrame. I LOVE IT, fonctionne dans Opera10, FF3 et IE6. Grâce à certaines des affiches ci-dessus qui m'indiquent la bonne direction, c'est la seule raison pour laquelle je poste ici:
le code php générant la page qui est appelée ci-dessus:
la source
print
pour imprimer du code HTML. Fermez simplement la balise php?>
et ajoutez le code html après. Et évitez de l'utiliserexit
, ce n'est pas nécessaire (erreurs fatales, ...)Cela devrait résoudre votre problème.
Dans ce code, après avoir cliqué sur le bouton de soumission, nous appelons jquery ajax et nous transmettons l'URL au
type de publication des
données POST / GET : informations de données, vous pouvez sélectionner des champs de saisie ou tout autre.
succès: rappel si tout va bien à partir du
texte des paramètres de la fonction serveur , html ou json, réponse du serveur
en cas de succès, vous pouvez écrire des avertissements d'écriture si les données que vous avez sont dans une sorte d'état et ainsi de suite. ou exécutez votre code que faire ensuite.
la source
Vous pouvez essayer de définir l'attribut cible de votre formulaire sur une iframe masquée, afin que la page contenant le formulaire ne soit pas rechargée.
Je l'ai essayé avec des téléchargements de fichiers (ce que nous savons ne peut pas être fait via AJAX), et cela a fonctionné à merveille.
la source
Avez-vous essayé d'utiliser un iFrame? Pas d'ajax, et la page d'origine ne se chargera pas.
Vous pouvez afficher le formulaire de soumission comme une page distincte dans l'iframe, et lorsqu'il est soumis, la page externe / conteneur ne se recharge pas. Cette solution n'utilisera aucun type d'ajax.
la source
si vous soumettez à la même page où se trouve le formulaire, vous pouvez écrire les balises du formulaire sans action et il sera soumis, comme ceci
la source
J'ai fait quelque chose de similaire à la jquery ci-dessus, mais j'avais besoin de réinitialiser mes données de formulaire et mes toiles de pièces jointes graphiques. Voici donc ce que j'ai trouvé:
Cela fonctionne bien pour moi, pour votre application d'un formulaire html, nous pouvons simplifier ce code jquery comme ceci:
la source
Vous devrez utiliser JavaScript sans aboutir à une
iframe
(vilaine approche).Vous pouvez le faire en JavaScript; l'utilisation de jQuery le rendra indolore.
Je vous suggère de consulter AJAX et la publication.
la source
Une autre possibilité est de créer un lien javascript direct vers votre fonction:
...
la source
La page sera rechargée si vous ne souhaitez pas utiliser javascript
la source
<iframe name="ew" />
and<form target="ew" />
J'ai essayé plusieurs fois une bonne solution et la réponse de @taufique m'a aidé à arriver à cette réponse.
NB : N'oubliez pas de mettre
event.preventDefault();
au début du corps de la fonction.la source
Voici quelques jQuery pour publier sur une page php et récupérer du code HTML:
la source