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

24
demandé sur NetStarter 2013-06-27 07:07:02

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>
25
répondu Tom Groot 2016-10-27 17:49:57

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'];?>">
13
répondu ChaseC 2013-10-18 20:13:54

Il y a deux façons de le faire :

  1. 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.

11
répondu Ashrith Sheshan 2013-06-27 03:40:32

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>
2
répondu Surendra Kumar Ahir 2017-01-10 07:39:26

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.

1
répondu Kamil 2013-06-27 03:19:26

Essayez ceci... a travaillé pour moi

<form action="submit.php" method="post">
<input type="text" name="input">
<input type="submit">
</form>
<?php header("Location: ../index.php"); ?>
1
répondu 2017-10-25 14:08:37

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>
1
répondu john abraham 2018-02-23 03:32:33