inputのsubmitは値がセットされない

簡単なミニ写真掲載サイトみたいなのをノリで作ることになり、せっかくだからと最近ちまちまいじっている Ethna をガッツリ使ってみることにしました。

form 周りはチュートリアルを参考に。
個人的に input type="submit" に値をセットして使う事はないので違和感を覚えるのですが、フレームワークの作法に素直に従った方が良かろうと思ってそのまままねっこ。
簡単なものなら Ethna で書いたことがあるのであまり気にしていませんでしたというか、今時はこういう書き方なんだろうなと納得してました。

ところがアクション名がセットされているはずなのにデフォルトアクションが実行されることがある

UrlHandler を初めて使ったのでその辺の問題も疑ったけど、Ethna のソース見てると POST で投げたときには見てない模様。

etc/[appid]-ini.php で debug を有効にしてみたところ、アクション名がないのでデフォルトアクションを実行している。
よくよく見ると submit に指定してある name="action_hoge_do" が送信されていない。

なんだこれーと思ってぐぐってみたら1件だけそれっぽい情報が!
メソ知恵さんのところでずばりっぽい話が出てました。

確かに POST された情報は confirm 画面でセッション変数に格納しており、「戻る」か「確定」する submit のボタンしかないので変な挙動になっていた模様。
キーボードたたいたりマウスクリックでも元のフォーカスの位置によって送られたり送られなかったりして、それでなんだか不安定な挙動をしてたようです。
ンモー。

hidden でダミーデータをおいたりしてみましたが駄目だったので、hidden に直接アクション名を入れて解決しました。

この隠れ submit みたいなのは PSP のブラウザでも発生していたので実はいろんなブラウザに潜んでいるようですが、情報がずいぶん少ないですねぇ。

しかしたまたま別のドキュメントを見たら hidden で書いてる(笑)
ンモー。

technical

Posted by yokky