Edited at

inputのdisabled属性とreadonly属性におけるPOST時の挙動の観察

:beginner: 注:PHP初心者の記事です

もっといい解決方法があったら教えてください。


TL; DR

disable:POSTできない。

readonly:POSTできる。


記事に至るまでの紆余曲折


経緯

phpでフォームをつくる課題が出た。

確認画面から送信をする時、つまり2回目のPOSTで失敗。

大量のNotice: Undefined index:が。

var_dump($_POST)で中身をぶちまけるとarray(0){}

要するにPOSTできていない、ということであった。

PHPのせいにしてみたり、送信ボタンのタグのせいにしてみたり、formタグも疑ったりしたが、

結局inputの属性が悪いことが分かった。


解決

当方、確認画面で結果表示にinputタグをそのまま使って楽をしようとしていたのだが、

その時にdisable属性を思い出してしまったのが不幸にも黒塗りの高(略。


8h潰した戦犯(お名前欄)

お名前:<input name="name" value="<?php echo $_POST["name"]; ?>" disable>


大体はこんなことせずに、ベタで$_POST["name"]を表示して、inputを影で作るのが多いようで、

以下のようにしました。


すでに料理したものがこちら(お名前欄)

お名前:<?php echo $_POST["name"]; ?>

<input name="name" value="<?php echo $_POST["name"]; ?>" style="display:none;">


Special Thanks

今回マサカリ投げてもらった → @shoutaWATANABE