php formulaire à soumettre à rester sur la même page
j'ai un formulaire php qui se trouve sur le contact.html
le formulaire est traité à partir de processForm.php
Lorsqu'un utilisateur remplit le formulaire et clique sur envoyer, la processForm.php envoie l'email et dirige l'utilisateur vers - processForm.php avec un message sur la page de la "Réussite! Votre message a été envoyé."
Je ne sais pas grand chose sur php, mais je sais que l'action qui appelle est:
// Die with a success message
die("<span class='success'>Success! Your message has been sent.</span>");
Ma question est, comment puis-je garder le message à l'intérieur du div de forme sans rediriger vers le processForm.page php?
je peux poster le formulaire complet.php si nécessaire, mais c'est long.
Merci
7 réponses
pour rester sur la même page sur submit, vous pouvez laisser l'action vide (action=""
) dans la balise de formulaire, ou l'omettre complètement.
pour le message, créez une variable ($message = "Success! You entered: ".$input;"
) et puis l'écho de la variable à l'endroit de la page où vous souhaitez faire apparaître <?php echo $message; ?>
.
Comme ceci:
<?php
if(isset($_POST['SubmitButton'])){ //check if form was submitted
$input = $_POST['inputText']; //get input text
$message = "Success! You entered: ".$input;
}
?>
<html>
<body>
<form action="" method="post">
<?php echo $message; ?>
<input type="text" name="inputText"/>
<input type="submit" name="SubmitButton"/>
</form>
</body>
</html>
La meilleure façon de rester sur la même page est de poster sur la même page.
<form method="post" action="<?=$_SERVER['PHP_SELF'];?>">
Il y a deux façons de le faire :
- en soumettant le formulaire à la même page. (Cela peut être fait en définissant l'action form à la même URL ) dans ce cas, vous devez gérer le formulaire soumis en utilisant un script PHP.
if(isset($_POST['submit'])) { // Enter the Code you want to execute after the form has been submitted // Dispaly Success or failure Message if any } else { // Display the Form and the Submit Button }
2.En utilisant la soumission de formulaire AJAX qui est un peu plus difficile que la première méthode pour un débutant.
Vous pouvez utiliser # action dans l'action du formulaire
<?php
if(isset($_POST['SubmitButton'])){ //check if form was submitted
$input = $_POST['inputText']; //get input text
$message = "Success! You entered: ".$input;
}
?>
<html>
<body>
<form action="#" method="post">
<?php echo $message; ?>
<input type="text" name="inputText"/>
<input type="submit" name="SubmitButton"/>
</form>
</body>
</html>
Vous devez utiliser un code similaire à ceci:
echo "<div id='divwithform'>";
if(isset($_POST['submit'])) // if form was submitted (if you came here with form data)
{
echo "Success";
}
else // if form was not submitted (if you came here without form data)
{
echo "<form> ... </form>";
}
echo "</div>";
Code avec if
comme cela est typique pour beaucoup de pages, mais c'est très simplifié.
normalement, vous devez valider certaines données dans le premier " si " (Cochez si les champs du formulaire n'étaient pas vides, etc.).
s'il vous Plaît visitez le site www.thenewboston.org ou phpacademy.org. Il existe de très bonnes PHP tutoriels vidéo, y compris les formulaires.
Ami. Utilisez cette façon, il n'y aura pas de "message variable non défini" et cela fonctionnera très bien.
<?php
if(isset($_POST['SubmitButton'])){
$price = $_POST["price"];
$qty = $_POST["qty"];
$message = $price*$qty;
}
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form action="#" method="post">
<input type="number" name="price"> <br>
<input type="number" name="qty"><br>
<input type="submit" name="SubmitButton">
</form>
<?php echo "The Answer is" .$message; ?>
</body>
</html>