EZweb の理不尽な XHTML -> HDML 変換規則に悩まされながら徹夜仕事。
ez の旧機種は XHTML を解さないのだが、ゲートウェイが HDML に変換してくれるから旧機種に向けても XHTML で記述してよいですよ、とのこと。(むしろ推奨、と言われてたのだが) しかし、
<input type="radio" name="hoge_id" value="1" />
を HDML に変換したフォームから送信すると、実際にサーバに送信されるのは
hogeM=
となる。なんだそれ? AUの技術サポートに問い合わせると、「_ (アンダースコア) が含まれる name だと、正常に送信されない場合があります」 という、なんでそんな? と思うような回答。
まあしょうがない。一律に _ を - に置換して、実験。 そうすると今度は、 hoge=-id が送信されて来る。・・・なんなんだこれは。
いろいろ実験してみたところをまとめると、
- type=select, text, textarea では、name に _ や - が入っていても正常に値が送信される。
- type=hidden, checkbox だと、 name に - が入っていると正常。 _ が入っていると値が送信されない。
- type=radio だと、name に _ が入っていると値が送信されない。name="hoge_id" だと、hogeM= が送信される。 name に - が入っていると、たとえば name="hoge-id" の場合 hoge=-id が送信される。
なんなんだコレは! それぞれの type ごとに実装した人間が違ってて、それぞれ勝手な解釈であいまいな仕様をコーディングしたのだろうか・・・ そんなんだから J-Phone に○○○(以下自粛)