学習記録

プログラミングの学習中に調べて解決したこと等の記録です。

入力保持可能なものと不可能なもの

 

 

問題点「入力保持がきかない」

やりたかったこと

textareaタグで作成したフォームに文字を入力した際に、バリデーションエラーでひっかかったとしても入力内容がそのまま保持されるようにする。

実際

バリデーションでひっかかるとtextareaの部分だけ入力内容が消えてしまう。

 

 

inputで作成したフォームではそのまま入力内容が保持されているので、PHPのコードの書き方が誤っているわけではなさそうでした。

 

 

解決策

<input type="text" name='email'
              value='<?php if (!empty($_POST['email'])) echo $_POST['email']; ?>'>

inputタグを使用した際に入力保持をしたいときには、上記のようにvalue属性をつけて入力保持のコードを書きますが

 

<textarea name="comment"> 
<?php if (!empty($_POST['comment'])) echo $_POST['comment'] ?></textarea>
 

textareaの場合は、value属性は付けられないため、開始のタグと閉じタグの間にコードを入れるようにすると効くようになりました。

 

投稿した写真の入力保持はできるのか? 

imput type="file"にもvalue属性はつかず、閉じタグもないので入力保持はできないようです。

そもそも問題、セキュリティ面から画像ファイルの入力保持は出来ないようになっているとのことです。

 

 

参考:

https://web-kiwami.com/post-589.html

https://teratail.com/questions/115016