J'ai une forme simple pour une liste de diffusion que j'ai trouvée chez http: // www. NotNotBit.com/Projects/Mailing-List/
Le problème est quand je clique sur Soumettre tout ce que je veux que ce soit à faire est d'afficher un message sous le formulaire actuel indiquant "Merci de vous abonner" sans redirection. Au lieu de cela, il me dirige une nouvelle page. P>
<form method="POST" action="mlml/process.php">
<input type="text" name="address" id="email" maxlength="30" size="23">
<input type="submit" value="" id="submit"name="submit" >
</form>
9 Réponses :
Vous devez utiliser Ajax. Mais cela nécessite que JavaScript soit actif chez les utilisateurs brwoser. À mon avis, c'est la seule façon de faire sans rediriger. P>
Il redirige vers une page différente en raison de votre attribut code> action code>.
Essayez: p> La page indique votre "merci "Message après que l'utilisateur clique sur votre bouton d'envoi. P> De plus, puisque je ne connais pas le nom de la page, votre code est activé, j'ai inséré une variable superglobale qui insérera le nom de fichier Le script exécutant actuellement par rapport à la racine du document em>. Donc, cette page se soumettra à elle-même. P> p>
Bien que si vous souhaitez que la page ne soit pas rafraîchie, la réponse de GameCripting est correcte. Vous aurez besoin d'AJAX si vous traitez des informations sur PHP. Sinon, vous pouvez simplement utiliser JavaScript lorsque Prashant Singh suggère.
En outre, vous pouvez simplement laisser action code> vide si vous souhaitez publier à l'URL actuelle. Pas besoin d'impliquer PHP là-bas.
@Goleztrol merci pour cela. Je n'ai jamais su ni testé la manière dont la forme se comporte sans l'attribut d'action.
Utilisez
form onsubmit="takeActions();return false;"
function takeAction(){
var value1 = document.getElementById('name').innerHTML;
// make an AJAX call and send all the values to it
// Once , you are done with AJAX, time to say Thanks :)
document.getElementById('reqDiv').innerHTML = "Thank You for subscribing";
}
où showMessage () montre le message REQ à la position requise sur la page Web
Vous pouvez traverser Dom et utiliser les valeurs remplies par l'utilisateur dans la fonction showMessage (). Je pense que cela réparera son problème
Vous aurez besoin d'AJAX pour publier les données sur votre serveur. La meilleure solution consiste à mettre en œuvre la posture régulière, de sorte que cela fonctionnera au moins. Ensuite, vous pouvez vous connecter à celui utilisant JavaScript. De cette façon, l'affichage fonctionnera (avec une rafraîchissement) lorsque quelqu'un n'a pas de JavaScript. p>
Si trouvé a Bon article sur la publication des formulaires avec Ajax en utilisant JQuery . P>
En outre, vous pouvez choisir de publier les données sur la même URL. La bibliothèque de jQuery ajoutera le http_x_requezted_with code> en-tête, de laquelle vous pouvez vérifier la valeur dans votre script de serveur. Cela vous permettra de poster sur la même URL, mais de renvoyer une valeur différente (page entière ou juste une réponse spécifique, en fonction d'une demande AJAX ou non).
Vous pouvez donc réellement obtenir l'URL de votre formulaire et vous n'avez pas besoin de le coder dans votre JavaScript. Cela vous permet d'écrire un script plus maintenu et peut même conduire à une méthode de manutention de formulaire générique que vous pouvez réutiliser pour toutes les formes que vous souhaitez poster avec Ajax. P>
Juste une idée qui pourrait fonctionner pour vous supposer que vous n'avez aucun contrôle sur la page que vous affichez: p>
Créez votre propre "cible PHP proxy" pour l'action, puis répondez avec le message que vous souhaitez. Les données postées sur votre fichier PHP peuvent ensuite être transférées avec http_post_data (effectuez la demande postale avec des données pré-codées). Vous devrez peut-être l'analyser un peu. P>
assez simple avec jQuery: et dans votre processus.php: p>
Envoyer une demande de formulaire sans redirection n'est impossible dans PHP, mais il y a une façon de travailler autour de lui. P>
puis pour la page PHP son envoi pour le faire faire quelque chose mais n'édorquez pas un résultat, tout simplement rediriger avec p>
Si vous voulez que cela renvoie un message de réussite, faites simplement p>
et sur le formulaire Ajouter P>
$ réussite = $ _GET ["succès"]; p>
Si ($ réussite == "vrai") {ECHO "Votre message de réussite"; } else {echo
"Votre message d'échec '; p>
blockQuote> en-tête ('emplacement: http://yourherurl.com/formpage'); code> p>
$ SUCCESS = "vrai";
Header ('Emplacement: http://yourherurLL.com/Formpage?success='.еSuccess); code> p>
Version anglaise
Il semble que personne n'a résolu ce problème sans JavaScript ou Ajax Strong> EM> P> Vous pouvez également faire ce qui suit. / P> Enregistrez un fichier PHP avec les fonctions, puis envoyez-les à l'index de votre page p> exemple p> index.php p> <?php
if(isset($_POST['enable'])) {
echo "Enable";
} else {
}
if(isset($_POST['disable'])) {
echo "Disable";
} else {
}
?>
Retourner et imprimer le contenu d'une autre page de la page en cours.
index.php p> test.php p>
<> <> / p> p>