J'ai un formulaire php qui se trouve sur contact.html
Le formulaire est traité à partir de processForm.php
Lorsqu'un utilisateur remplit le formulaire et clique sur soumettre, le ProcessForm.php envoie le courrier électronique et le dirige vers - processForm.php Avec un message sur la page "Succès! Votre message a été envoyé."
Je ne connais pas grand chose à propos de php, mais je sais que l'action qui appelle à cela est la suivante:
// Die with a success message
die("<span class='success'>Success! Your message has been sent.</span>");
Ma question est la suivante: comment puis-je conserver le message dans le formulaire div sans avoir à rediriger vers la page ProcessForm.php?
Je peux poster l'intégralité du fichier processForm.php si nécessaire, mais c'est long.
Merci
Pour rester sur la même page lors de la soumission, vous pouvez laisser l'action vide (action=""
) dans la balise de formulaire ou la laisser complètement.
Pour le message, créez une variable ($message = "Success! You entered: ".$input;"
), puis indiquez-la à l'emplacement de la page où vous souhaitez que le message apparaisse avec <?php echo $message; ?>
.
Comme ça:
<?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>
Le meilleur moyen 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:
Soumettez le formulaire sur la même page : Traitez le formulaire soumis à l'aide du script PHP. (Cela peut être fait en définissant le formulaire action
sur l'URL de la page en cours.)
if(isset($_POST['submit'])) {
// Enter the code you want to execute after the form has been submitted
// Display Success or Failure message (if any)
} else {
// Display the Form and the Submit Button
}
. 2. Utilisation de AJAX Soumission de formulaire qui est un peu plus difficile pour un débutant que la méthode n ° 1.
Ami Utilisez cette manière, il n'y aura pas de "message de variable indéfinie" et cela fonctionnera correctement.
<?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>
Vous pouvez utiliser # action dans l'action de 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>
Essayez ceci ... a fonctionné pour moi
<form action="submit.php" method="post">
<input type="text" name="input">
<input type="submit">
</form>
------ submit.php ------
<?php header("Location: ../index.php"); ?>
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>";
Le code avec if
comme celui-ci est typique de nombreuses pages, mais cela est très simplifié.
Normalement, vous devez valider certaines données dans le premier "if" (vérifiez si les champs du formulaire n'étaient pas vides, etc.).
Veuillez visiter www.thenewboston.org ou phpacademy.org . Il existe de très bons tutoriels vidéo PHP, y compris des formulaires.
Vous pouvez voir l'exemple suivant pour le action Form sur la même page
<form action="" method="post">
<table border="1px">
<tr><td>Name: <input type="text" name="user_name" ></td></tr>
<tr><td align="right"> <input type="submit" value="submit" name="btn">
</td></tr>
</table>
</form>
<?php
if(isset($_POST['btn'])){
$name=$_POST['user_name'];
echo 'Welcome to '. $name;
}
?>
Ce que je fais, c'est que je veux que la page reste après l'envoi quand il y a des erreurs ... Je veux donc que la page soit rechargée:
($_SERVER["PHP_SELF"])
Bien que j'inclus le script d'un fichier séparé, par exemple
include_once "test.php";
J'ai aussi lu quelque part que
if(isset($_POST['submit']))
Est-ce une méthode de fasion ancienne pour les débutants qui poste un formulaire, et
if ($_SERVER['REQUEST_METHOD'] == 'POST')
Devrait être utilisé (Pas mes mots, lisez-le quelque part)