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
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>
Der beste Weg, um auf derselben Seite zu bleiben, besteht darin, auf derselben Seite zu posten.
<form method="post" action="<?=$_SERVER['PHP_SELF'];?>">
Es gibt zwei Möglichkeiten, dies zu tun:
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.
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>
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>
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"); ?>
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.
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;
}
?>
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)