Eingabewerte verloren gehen, wenn die form eingereicht, mit Fehler
Meine form ist in Ordnung arbeiten mit der Validierungen von PHP.
Ich habe drei Felder: Name, EMail und Nachricht.
Formular und PHP-code ist innerhalb der gleichen pgae, gleiche Seite wird aufgerufen, für Validierungen, wenn der Benutzer das Formular sendet.
Wenn ein Benutzer das Formular sendet, wird die gleiche Seite aufgerufen und überprüft, ob das Formular abgeschickt wird oder nicht.
Wenn das Formular übermittelt wird, dann werden die Validierungen für leere Einträge verwenden und wirft die Fehlermeldung unten die Felder zu informieren Benutzer, das Feld ist leer. Es zeigt auch Fehler-Symbol neben dem Feld an.
Bis zu diesem, es ist in Ordnung.
Jedoch das problem, ist wenn der Benutzer ausgefüllt hat jeden Bereich, zum Beispiel Namen eingereicht wurde, und verließ die anderen beiden Felder(E-Mail und Nachricht) leer, dann auf submittion, wirft es Fehlermeldungen für leere Felder, die ist ok, aber für die name-Feld, welches ausgefüllt war durch die Benutzer es leer ist, den Inhalt und zeigt leere Feld name und zeigt keine Fehler(wie die früheren Benutzer gefüllt hatte).
Meine einzige Sorge ist, dass, wenn es relods die form nach der Vorlage, es sollten auch reload der früheren Werte in die jeweiligen Felder die Benutzer Eingaben vor Abgabe.
Unten ist die PHP-Validierung code.
<?php
error_reporting(E_ALL & ~E_NOTICE);
if(isset($_POST['nameField_Name']) AND isset($_POST['nameField_EMail']) AND isset($_POST['nameField_Message']) AND isset($_POST['nameSubmit'])){
//Form Submited
if ($_POST['nameField_Name']) {
$phpVarNameField = mysql_escape_string($_POST['nameField_Name']);
} else {
$errormsgNameField = "Name field is required, Please enter your Name.";
}
if ($_POST['nameField_EMail']) {
$phpVarEMailField = mysql_escape_string($_POST['nameField_EMail']);
} else {
$errormsgEMailField = "E-Mail field is required, Please enter your E-Mail ID.";
}
if ($_POST['nameField_Message']) {
$phpVarMessageField = mysql_escape_string($_POST['nameField_Message']);
} else {
$errormsgMessageField = "Message field is required, Please enter your Message.";
}
}
?>
Unten ist der form-code.
<form name="myform" action="contactus.php" method="post"">
<div id="r1">
<div id="r1c1">
<input type="text" name="nameField_Name" id="idField_Name" placeholder="Enter your name here"/>
</div>
<div id="r1c2">
<?php
if(isset($errormsgNameField)){ //Check if $msg is not empty
echo '<img src="error.png" width="45" height="45" style="margin: 5px 0px" alt="">';
}
?>
</div>
</div>
<div id="afterr1">
<?php
if(isset($errormsgNameField)){ //Check if $msg is not empty
echo '<div class="statusmsg" id="idErrorMsgNameField">'.$errormsgNameField.'</div>'; //Display our message and wrap it with a div with the class "statusmsg".
}
?>
</div>
<div id="r2">
<div id="r2c1">
<input name="nameField_EMail" type="text" id="idField_EMail" placeholder="Enter your E-Mail address here" />
</div>
<div id="r2c2">
<?php
if(isset($errormsgEMailField)){ //Check if $msg is not empty
echo '<img src="error.png" width="45" height="45" style="margin: 5px 0px" alt="">';
}
?>
</div>
</div>
<div id="afterr2">
<?php
if(isset($errormsgEMailField)){ //Check if $msg is not empty
echo '<div class="statusmsg" id="idErrorMsgEMailField">'.$errormsgEMailField.'</div>'; //Display our message and wrap it with a div with the class "statusmsg".
}
?>
</div>
<div id="r3">
<div id="r3c1">
<textarea name="nameField_Message" id="idField_Message" placeholder="Enter your message for us here"></textarea>
</div>
<div id="r3c2">
<?php
if(isset($errormsgMessageField)){ //Check if $msg is not empty
echo '<img src="error.png" width="45" height="45" style="margin: 115px 0px" alt="">';
}
?>
</div>
</div>
<div id="afterr3">
<?php
if(isset($errormsgMessageField)){ //Check if $msg is not empty
echo '<div class="statusmsg" id="idErrorMsgMessageField">'.$errormsgMessageField.'</div>'; //Display our message and wrap it with a div with the class "statusmsg".
}
?>
</div>
<div id="r4">
<div id="r4c">
<input type="Submit" name="nameSubmit" id="idButton_Submit" value="Submit" alt="Submit Button"/>
</div>
</div>
</form>
Jede Hilfe wird groß sein.
Danke.
InformationsquelleAutor user1478475 | 2012-06-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie Ihr tag wie folgt aussieht :
Glück !
Oh, Tut Mir Leid! Das ist mein Fehler. <textarea> kann nicht Wert. Es sollte wie <textarea name="nameField_Message" id="idField_Message" Platzhalter="Geben Sie Ihre Nachricht für uns hier" ><?php if (isset($phpVarMessageField)) echo $phpVarMessageField; ?></textarea>
InformationsquelleAutor EscalinNancy
Müssen Sie eine
value
- Attribut auf Ihre<input>
Elemente:Kann es einfacher sein, zu Lesen, wenn die PHP-Ausgänge Bereich:
Dies kann auch, eingewickelt in eine Funktion, so brauchen Sie nicht erneut eingeben es bei jedem einzelnen Formularfeld.
Beachten Sie den Aufruf htmlspecialchars. Es ist erforderlich, so dass
<
und>
und Zitate nicht zerstören Sie Ihre HTML-Dokument.InformationsquelleAutor Emil Vikström
Gut, Sie könnte tun-Validierung mit jQuery-validation-plugin - einfach und gut. jQuery-plugin
Oder mit PHP-store-POST-Daten in array, auf Fehler überprüfen und Felder, die nicht leer sind legen Sie als Wert den text eingeben.
etwas wie dieses.
InformationsquelleAutor dpitkevics