- 締切済み
<form>中の<button>タグのvalue値
いつもお世話になっています。 以下のformでボタンを押してポストした時、受信側でvalueの値が取得できず、ボタン名が取得されます。 <form method="post" action="送信URL"> <button type="submit" name="hoge" value="ボタンの値">ボタン名</button> </form> 正しくvalueを取得する方法をご教示ください。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- mtaka2
- ベストアンサー率73% (867/1179)
1つのフォームで、どのボタンが押されたかを認識したいのでしたら、 <button type="submit" name="button1" value="ダミー文字列">ボタン名1</button> <button type="submit" name="button2" value="ダミー文字列">ボタン名2</button> といった感じで、ボタン毎にnameを変えておいて、 受信側では、値そのものは見ずに「値が設定されているかどうか」だけをチェックすればどうでしょうか。 (button1が設定されていればボタン1がクリック、button2が設定されていればボタン2がクリック) ボタン毎の情報をサーバー側に持たせずにHTML側で持たせたいのでしたら、 <button type="submit" name="button1" value="ボタンの値1">ボタン名1</button><input type="hidden" name="button1value" value="hoge"> <button type="submit" name="button2" value="ボタンの値2">ボタン名2</button><input type="hidden" name="button2value" value="fuga"> といった形で別途hiddenを併用する(サーバ側で、button1に値が設定されていたら、button1valueをbuttonの値として処理し、button2に値が設定されていたら、button2valueをbuttonの値として処理する)か、 必要な情報が数値アルファベット程度だったら、 <button type="submit" name="button_hoge" value="1">ボタン名1</button> <button type="submit" name="button_fuga" value="1">ボタン名2</button> といった形で、nameの方に情報を持たせるという手もあります。 (サーバ側で、button_XXX に何らかの値が設定されていたら、button=XXX として扱うようにする)
- yambejp
- ベストアンサー率51% (3827/7415)
ブラウザによって解釈が異なるようです。 <form> <button type="submit">piyo</button> <input type="hidden" name="hoge" value="fuga"> </form> 的なやり方で処理するしかないのでは?
お礼
IEでは、やはりそうでしたか.............FireFoxでは正常に作動するのですが........... これでは<input type=submit>とほとんど変わりませんね。(見栄えだけか?) 今は一つのフォームに複数のボタンを配置してボタンごとに値を割り当てたいのでhiddenはできれば避けたいです。 かといってボタン毎にformを作るのは見栄えがよくないし....... しかたないのでひとまずボタンの表示名を強制的に送信して受信側で表示名に対する値を割り当てています。 ありがとうございました。 ほかにアイデアがあれば教えてください。
お礼
丁寧に教えて下さりありがとうございます。色々アイデアがありますね。 当方の方法は2番目に近いですが、どうしてもvalueが日本語になりますのでnameで参照するほうがよいようです。 PHPだと....if($_POST['button1'])ですね。 ありがとうございました。