Conserver le texte dans le champ de texte après la soumission
Je suis en train de construire un formulaire, et je veux que toutes les valeurs insérées sera tenu, en cas de soumettre le formulaire à l'échec. C'est mon code:
<?php
$error = "";
$name = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST["name"];
//Verify $_POST['name'] greater than 4 chars
if ( strlen($name) < 4 ){
$error= 'Name too short!';
}
}
?>
<html>
<head>
</head>
<body>
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" name="myForm" id="idForm">
<input type="text" placeholder="Name" id="name" name="name" value=""/>
<input type="submit" value="submit"/>
</form>
<?php
echo "<h2>Input:</h2>";
echo $name;
if($error) {
//No Update AND refresh page with $name in text field
echo "<br/>" . $error;
} else {
//Update name in DB
}
?>
</body>
</html>
Je voudrais que le nom de domaine continue, l'insertion de texte de saisie, après la soumission. J'ai essayé de le faire avec du code php dans la valeur d'entrée mais ne fonctionne pas. Des idées?
Vous devez vous connecter pour publier un commentaire.
Résolu. C'est la solution que je cherchais.
J'ai ajouté de la valeur de la balise d'entrée suivantes:
Donc champ de saisie ressemblerait à:
Merci pour vos réponses, qui m'ont aidé.
Vous pouvez simplement echo $_POST['nom'] dans la valeur de l'attribut de l'entrée.
Assurez-vous de vérifier les valeurs POST pour éviter les attaques de type XSS.
J'ai aussi mis la mise à jour de la DB de la fonction, que vous n'avez pas besoin d'afficher le formulaire à l'utilisateur si le nom est plus long que le 4 caractères!
Si vous voulez bien garder toutes les valeurs entrées pour la poursuite de l'utilisation que vous pourriez réaliser qu'avec php valeurs de session.
En outre, vous devez utiliser la variable $_SERVER['SCRIPT_NAME'] au lieu de $_SERVER['PHP_SELF']
Mars