• ベストアンサー

フォームがFirefoxで動作するのにIEでは動作しない

簡単な計算式のあるCGIなのですが、 POSTでCGIに値を送りたいので、 以下のようにフォームを作成しました。 Firefoxでは値を受取り正常に動作するのですが、IEではmodeの値が空の状態になり、値が受け取れません。(常に&Bが実行されます。) HTML内 <input type="image" src="img/select1.gif"value="a" name="mode"> <input type="image" src="img/select2.gif" value="b" name="mode"> CGI内 $mode=$in{'mode'}; if($mode eq "a"){&A;}else{&B;} 何を修正するれば、どちらでもきちんと動作するようになるのでしょうか? ご教授下さいますよう、宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

type="image"の場合、valueで指定した値が送られるかどうかはブラウザによってまちまちのようです。(確証はないけど、value値が送信されないのが正しいというような文献もありました。) type="image"のボタンは(サーバ側の)クリッカブルマップを実現させるた、マウスでクリックした座標が送られます。 ~?mode.x=XX&mode.y=YY なので別のnameをつけておいて modeA.xに値があるか、modeB.xに値があるかでどちらのボタンが選ばれたか一応判断できるかも

junpochin
質問者

お礼

なるほど!そうなんですね。 type="image"の場合、valueで指定した値が送られるかどうかはブラウザによって違うのはまったく知りませんでした。 教えていただいた通り、modeA.xとmodeB.xで判別させて、無事にちゃんと動作するようになりました!!! ありがとうございました。

その他の回答 (1)

  • taaaaaaa
  • ベストアンサー率38% (31/80)
回答No.2

hiddenを使うのもいいかと思います。 <input type="hidden" name="mode" value="a"> というように。

参考URL:
http://news.joho.boo.jp/?day=20070907

関連するQ&A