it-swarm.com.de

pHP-Formular - beim Senden bleiben Sie auf derselben Seite

Ich habe ein PHP-Formular, das sich auf contact.html befindet

Das Formular wird von processForm.php verarbeitet

Wenn ein Benutzer das Formular ausfüllt und auf "Senden" klickt, sendet die ProcessForm.php die E-Mail und weist den Benutzer mit einer Nachricht auf dieser Seite an - processForm.php.

Ich weiß nicht viel über PHP, aber ich weiß, dass die Aktion, die dazu aufruft, ist:

// Die with a success message
die("<span class='success'>Success! Your message has been sent.</span>");

Meine Frage ist, wie kann ich die Nachricht im Formular div beibehalten, ohne zur Seite ProcessForm.php umzuleiten?

Ich kann die gesamte processForm.php bei Bedarf posten, aber es ist lang.

Vielen Dank

27
mewebs

Um beim Senden auf der gleichen Seite zu bleiben, können Sie action (action="") leer im Formulartag lassen oder ganz weglassen.

Erstellen Sie für die Nachricht eine Variable ($message = "Success! You entered: ".$input;") und wiederholen Sie die Variable an der Stelle auf der Seite, an der die Nachricht mit <?php echo $message; ?> erscheinen soll.

So was:

<?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>
30
Tom Groot

Der beste Weg, um auf derselben Seite zu bleiben, besteht darin, auf derselben Seite zu posten.

<form method="post" action="<?=$_SERVER['PHP_SELF'];?>">
14
ChaseC

Es gibt zwei Möglichkeiten, dies zu tun:

  1. Senden Sie das Formular an dieselbe Seite : Behandeln Sie das gesendete Formular mit dem Skript PHP. (Dies kann erreicht werden, indem das Formular action auf die aktuelle Seiten-URL gesetzt wird.)

    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. Mit AJAX Form Submission was für Anfänger etwas schwieriger ist als Methode # 1.

12
Ashrith Sheshan

Freund Verwenden Sie diesen Weg. Es wird keine "Undefinierte Variablenmeldung" angezeigt und es funktioniert einwandfrei.

<?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>
3
john abraham

Sie können # Aktion in Formularaktion verwenden

 <?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>
3

Versuchen Sie das ... für mich gearbeitet

<form action="submit.php" method="post">
<input type="text" name="input">
<input type="submit">
</form>

------ submit.php ------

<?php header("Location: ../index.php"); ?>
2
user8564352

Sie müssen einen ähnlichen Code verwenden:

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 mit if ist typisch für viele Seiten, jedoch sehr vereinfacht.

Normalerweise müssen Sie einige Daten im ersten "if" überprüfen (prüfen, ob Formularfelder nicht leer waren usw.).

Bitte besuchen Sie www.thenewboston.org oder phpacademy.org . Es gibt sehr gute PHP Video-Tutorials, einschließlich Formulare.

1
Kamil

Das folgende Beispiel zeigt die Formularaktion auf derselben Seite

<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; 
   }
 ?>
0
Majbah Habib

Was ich mache ist, ich möchte, dass die Seite nach dem Absenden verbleibt, wenn Fehler auftreten.

($_SERVER["PHP_SELF"])

Während ich das Skript aus einer separaten Datei z

include_once "test.php";

Ich habe das auch irgendwo gelesen

if(isset($_POST['submit']))

Ist eine Anfänger-Methode, ein Formular zu veröffentlichen, und

if ($_SERVER['REQUEST_METHOD'] == 'POST')

Sollte verwendet werden (nicht meine Worte, lest es irgendwo)

0
Patrick Smit