• ベストアンサー

フォームが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;} 何を修正するれば、どちらでもきちんと動作するようになるのでしょうか? ご教授下さいますよう、宜しくお願い致します。

  • CGI
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • 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

  • フォームのボタンをSUBMITから画像にしたいのですが…

    フォームを使って値を渡すのに <INPUT TYPE=SUBMIT NAME=WORD VALUE='*****'> とボタンを作成し、VALUEの値 (中身を確認、とか送信実行とか) で動作を分岐し、実行していました。 このボタンを画像にしたいのですが、 値を渡すのはGETじゃないと無理でしょうか? (今まではPOSTで送信) ボタンを画像にするとなると <A HREF='**.cgi'><IMG SRC='**'></A> となるので、 <A HREF='**.cgi?key=****'><IMG SRC='**'></A> のように、する必要があるのかなぁ?と思いまして… せっかくPOSTで受け取るようにCGIを作成したので、 できればPOSTのままで使用できればと思うのですが。 (無理ならGETに変更するしかないですけど) VALUEの値はボタンでは送信できないので、 <INPUT TYPE=HIDDEN NAME=WORD VALUE='****'> として渡そうと思ってます。 他に何かよい方法あるでしょうか? ※Perl使用です。

    • ベストアンサー
    • Perl
  • フォームで同じ複数のnameで違うvalueの送信

    始めまして、現在一個のフォーム内で複数の同じnameで、違うvalueを送信しようと苦戦しております、、普通にタグを書くだけでは 一個のnameで違うvalueの送信は、最後のvalueしか送信できないです、 phpは使用できません。javaは、、殆ど素人なので、あまり分かりません、、formを一個一個区切るのも、レイアウト上できません、、 どうすればいいのでしょうか?・・・以下タグです。 昨日から、ここから先に進めません。。 先輩方助けてください、本当によろしくお願いします。 <form action="http://hoge.net/hoge/hogecheck.php" method="post"> <input type="hidden" name="site" value="hoge"> <input name="id" type="text" id="idform" maxlength="10" /> <input type="hidden" name="kin" value="3000"> <input type="image" src="buybtn.gif" /> <input type="hidden" name="kin" value="5000"> <input type="image" src="buybtn.gif" /> <input type="hidden" name="kin" value="10000"> <input type="image" src="buybtn.gif" /> <input type="hidden" name="kin" value="20000"> <input type="image" src="buybtn.gif" /> </form>

    • ベストアンサー
    • Java
  • name属性のあるフォームボタンを画像化について

    name属性のあるフォームボタンを画像化について どのように質問したらよいのか分からず、説明が足りないようでしたらばご了承ください。 以下のフォームボタンがあるのですが、これらを画像にしたいと思っています。 <input type="submit" value="送信" /> <input type="submit" name="retry" value="訂正" /> 送信ボタンは以下のように画像にしました。 <input type="image" src="./img/send.gif" value="送信"> しかし訂正ボタンを同じようにしたところ、訂正ボタンを押しても送信ボタンと同じアクションになってしまいます。 <input type="image" src="./img/retry.gif" name="retry" value="訂正"> デフォルトの訂正ボタンにはname="retry"と書いてあるのですが、 このようなボタンを画像にする場合、どのようにすればよろしのでしょうか? アドバイスよろしくお願いします。

    • ベストアンサー
    • HTML
  • nameが同じ物を扱うことは可能?

    下記のようにnameが同じでもvalue値が違うものを 並べるのはよくない事なのでしょうか? <input=hidden name=point value=""> というように値を渡してあげたいのですが、、、 <INPUT TYPE="image" name="point" value="1" BORDER="0" SRC="*.gif" WIDTH="110" HEIGHT="18" onClick="URL"> <INPUT TYPE="image" name="point" value="2" BORDER="0" SRC="*.gif" WIDTH="110" HEIGHT="18" onClick="URL"> <INPUT TYPE="image" name="point" value="3" BORDER="0" SRC="*.gif" WIDTH="110" HEIGHT="18" onClick="URL"> <INPUT TYPE="image" name="point" value="4" BORDER="0" SRC="*.gif" WIDTH="110" HEIGHT="18" onClick="URL">

    • ベストアンサー
    • HTML
  • Firefoxで表示できないのは何故でしょう?

    お世話になります IE6、Operaでは表示できたのですがFirefoxでは表示できませんでした(><) 何か見落としがあるのでしょうか? <script language="javascript"> <!-- window.onload = function() { n=document.getElementById("div1").innerText; if(n == "a0"){ document.getElementById("img1").style.display = "block"; document.getElementById("img1").style.top = "100px"; document.getElementById("img1").style.left = "100px"; } if(n == "a"){ document.getElementById("img2").style.display = "block"; document.getElementById("img2").style.top = "100px"; document.getElementById("img2").style.left = "200px"; } } //--> </script> <div id="div1">a</div> <form action="test.cgi" method="post"> <input type="hidden"name="a" value="leap_day"> <input type="image" src="sample0.gif" id="img1" style="position:absolute;display:none;"> </form> <form action="test.cgi" method="post"> <input type="hidden"name="b" value="leap_day"> <input type="image" src="sample1.gif" id="img2" style="position:absolute;display:none;"> </form> n=document.getElementById("div1").innerText; if(n == "a0"){ } if(n == "a") { } を消すと表示はできるのですが・・・

  • input の画像について

    <input name="return" type="submit" value=" 戻る "> というボタンを画像にしたい場合、 <input type="image" src="img/modorubtn.gif" name="return" alt="戻る"> で良いのでしょうか? これで、動作しない場合は、どのような原因が考えられるでしょうか? よろしくお願いします。

    • ベストアンサー
    • HTML
  • input type="image" 複数の画像がある場合のSubmit

    いつもお世話になります。 早速ですが質問です。 function Check(){ if(document.form.text.value==""){ alert('入力してください'); return false; } return true; } <form name="form" action="./form.cgi" method="post" onSubmit="return Check();"> <input type="text" name="text"> <input type="image" src="img/back.gif" name="btn01" alt="戻る"> <input type="image" src="img/next.gif" name="btn02" alt="進む"> </form> とあります。 テキストボックスの値が空の場合は【進む】を押したときにエラーを出し、 【戻る】を押したときは値の入力に関係なくページを移動したいです。 どなた様かよろしくお願いします。

  • フォームのリンクについて

    nyuryoku.php <form method="POST" action="kakunin.php"> <p> </p> <p><a href="変更フォーム"><img border="0" src="henkou.gif"></a><a href="会社フォーム"><img border="0" src="kaisya.gif"></a></p> <p>変更フォーム</p> <p>名前<input type="text" name="T1" size="20"></p> <p>住所<input type="text" name="T2" size="20"></p> <p>TEL<input type="text" name="T3" size="20"></p>  <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <p>会社フォーム</p> <p>会社名<input type="text" name="T4" size="20"></p> <p>会社住所<input type="text" name="T5" size="20"></p> <p>会社TEL<input type="text" name="T6" size="20"></p> <p> </p> <p><input type="submit" value="送信" name="B1"><input type="reset" value="リセット" name="B2"></p> </form> <form>から</form>の中に変更フォームと会社フォームがあり henkou.gifをクリックすると画面上に変更フォームが現れて、kaisya.gifをクリックすると会社フォームが表れるようにしたいのです。 そして入力された情報は<input type="submit" value="送信" name="B1">で一度に送信できるようにしたいのですが、 henkou.gifとkaisya.gifにどういう風にリンクをはり各フォームだけを表示するにはどうしたらいいでしょうか?

    • ベストアンサー
    • PHP
  • クリックでボタンの画像を変更するjavascriptsで

    通常A画像のボタンが押された場合、B画像に変更すると言う動作を行いたいのですが、 document.f1.elements['b1'].src = "A.jpg"; この部分でエラーがでます。 input type="image"のsrcを指定するにはどうしたら良いでしょうか。 --------------------- <html> <script language="javascript"> <!-- function ImageChange(){ if(document.f1.elements['b1value'].value == 0){ document.f1.elements['b1'].src = "A.jpg"; document.f1.elements['b1value'].value = 1; }else{ document.f1.elements['b1'].src = "B.gif"; document.f1.elements['b1value'].value = 0; } } //--> </script> <body> <form name="f1"> <input type="image" name="b1" src="A.gif" onclick="ImageChange()" > <input type="hidden" name="b1value" value="0"> </form> </body> </html>

  • IE6でレイアウトが崩れてしまいます

    制作しているWebサイトでIE6でプレビューした時のみ中央に配置したページが左にずれてしまいます。 ただし、他のページは中央に表示されていて、メールフォームを入れているページだけが左に表示されてしまいます。 ということから、スタイルシートの問題というよりは、formタグやレイアウトテーブルの置き方の問題なのだろうと思うのですが、助言をいただけないでしょうか。よろしくお願いいたします。 ソースは以下の通りです。 -------------------------------------- <form action="./clipmail.cgi" method="post" enctype="multipart/form-data"> <input type="hidden" name="need" value="姓 名" /> <input type="hidden" name="match" value="メール メール確認" /> <table border="0" cellpadding="5" align="center" width="80%"> <tr> <td><img src="images/l_name.gif" alt="ご氏名" width="70" height="21" /></td> <td> 姓(全角) <input type="text" name="姓" size="12" />   名(全角) <input type="text" name="名" size="12" />(必須)</td> </tr> <tr> <td><img src="images/l_name2.gif" alt="ご氏名(かな)" width="125" height="21" /></td> <td>せい(全角) <input type="text" name="せい" size="12" />  めい(全角) <input type="text" name="めい" size="12" />(必須)</td> </tr> <tr> <td><img src="images/l_age.gif" alt="年代" width="54" height="21" /></td> <td><label> <select name="年代"> <option value="" selected="selected"></option> <option value="~19歳">~19歳</option> <option value="20~29歳">20~29歳</option> <option value="30~39歳">30~39歳</option> <option value="40~49歳">40~49歳</option> <option value="50~59歳">50~59歳</option> <option value="60~69歳">60~69歳</option> <option value="70歳~">70歳~</option> </select>(必須)</label></td> </tr> <tr> <td><img src="images/l_mail.gif" alt="メールアドレス" width="135" height="21" /></td> <td><input type="text" name="メール" size="50" />(必須)</td> </tr> <tr> <td><img src="images/l_mailconfirm.gif" alt="メールアドレス確認" width="167" height="21" /></td> <td><input type="text" name="メール確認" size="50" />(再度入力)</td> </tr> <tr> <td><img src="images/l_reply.gif" alt="ご希望時間帯" width="182" height="21" /></td> <td><select name="ご希望時間帯"> <option value="時間指定なし" selected="selected">時間指定なし</option> <option value="午前">午前</option> <option value="午後">午後</option> <option value="18時以降">18時以降</option> <option value="土曜日">土曜日</option> <option value="日曜、祝祭日">日曜、祝祭日</option> </select> (必須)</td> </tr> <tr> <td><img src="images/l_consult.gif" alt="ご相談内容" width="103" height="21" /></td> <td><textarea name="ご相談内容" rows="10" cols="60"></textarea></td> </tr> <tr> <td colspan="2"><img src="../common/images/spacer.gif" width="1" height="10" /></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="入力内容を確認する" /><img src="../common/images/spacer.gif" height="10px" width="20px" /><input type="reset" value="すべて書き直す" /></td> </tr> </table> </form> と、こんな感じです。 ちなみに、これを囲んでいる<div id="container">は外部スタイルシートで #container { margin: 0 auto; width: 800px; } としています。 ページのトップで使用しているイメージが最大幅800pxで、背景に幅800pxの画像を使い、コンテナが中央に来るように配置しています。 どうぞよろしくお願いいたします。

専門家に質問してみよう