2011-10-03 2 views
1

Supposons que j'ai une forme comme ceci:Comment garder le texte inséré dans un fichier html <textarea> après une soumission incorrecte?

<form action="page.php" method="post"> 

    Section1: <input name="section1" type="text"></br> 
    Section2: <input name="section2" type="text"></br> 

    Text:</br> 
    <textarea name="post_text" cols="100" rows="20"></textarea> 

    <input name="submit" type="submit" value="Submit"> 

</form> 

Habituellement, si je souhaite enregistrer le contenu inséré dans un champ de la forme que je voudrais utiliser cette déclaration:

Section1: <input name="section1" type="text" vale="value="<?php echo $_POST['section1']; ?>""></br> 

De cette façon, si je fais une erreur dans la soumission (code de contrôle d'erreur n'est pas publié) les valeurs insérées seront conservées, et il n'y a pas besoin de les réinsérer. Cependant, en l'utilisant dans l'étiquette textarea, cela ne produira pas le résultat souhaité.

Des idées sur comment faire?

Merci d'avance!

+0

Qu'avez-vous fait exactement pour le textarea, et quel a été le résultat? – mercator

+0

Il y a aussi une faute de frappe dans votre exemple, vous vouliez probablement dire "valeur", pas "vale". – PapaFreud

Répondre

5

Vous pouvez utiliser la même approche, mais mettre le echo entre l'ouverture et la fermeture <textarea></textarea> balises, comme textarea n'a pas de « valeur » (en tant que telle) elle a un contenu textuel:

<textarea name="post_text" cols="100" rows="20"><?php echo $_POST['textareaContent']; ?></textarea> 
0

Utilisez comme la variable $_POST cela.

<textarea name="post_text" cols="100" rows="20"><?= isset($_POST['post_text'])?$_POST['post_text']:'' ?></textarea> 

inline contrôles conditionnels si le $_POST['post_text'] est réglé pour éliminer l'AVIS avertissement

0

vous mettriez à l'intérieur de l'élément <textarea> comme ceci:

<textarea name="post_text" cols="100" rows="20"><?php echo $_POST['post_text']; ?></textarea> 

Cependant, en appelant l'élément $ _POST directement n'est pas la meilleure pratique. Vous devriez plutôt faire quelque chose comme ceci:

<textarea name="post_text" cols="100" rows="20"> 
<?php echo $var = isset($_POST['post_text']) ? $_POST['post_text'] : ''; ?> 
</textarea> 

Cela arrête une erreur E_NOTICE d'être rapporté sur la première page charge.

Questions connexes