- 締切済み
このsubmitがうまくいかないんです。
echo '<button type="submit" name="bknk" value="back">先月</button>'; echo '<button type="submit" name="bknk" value="now">当月</button>'; echo '<button type="submit" name="bknk" value="next">次月</button><BR>'; 1つのフォームに、submitボタンを1つ設けて、 押したsubmitボタンによって、 処理を分けるというのが趣旨で、 この部分は、ボタンを配置している箇所です。 (1) この式で、どれか1個を押した時、 3つのsubmit全てがデータ送信されてしまい、 3つの処理が走ってしまいます。 1つの処理だけを行いたい。 (2) さらに、送信される値は value ではなく、 ボタンの表示名の漢字部分が送信されています。 そのままボタンを押すと、漢字が送信され、以降の処理でエラーになります。 漢字部分を、value の値にすると(1)の様に動作します。 フォーム内にsubmitが複数存在してはいけないのでしょうか。 私のHTML本には複数submitを設置した時に、 どのボタンが押されたか判別する為に name と value を使えば良いとされているのですが。 なにか、根本的なところに間違いなどありませんか? どなたかご指摘お願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- unchiku777
- ベストアンサー率0% (0/2)
実際試したわけじゃないし、間違っているかもしれないのでこの話は流してもらって結構です。 >フォーム内にsubmitが複数存在してはいけないのでしょうか。 確か全て送信されてしまったと思います。 1 つのフォームなのでどのボタンを押したとか関係なく全てのデータが送信されます (違ったらごめんなさい) submitはformのアクションへ飛ばす処理だけをし、 どのボタンを押したかは判断していないと思います。 複数使う場合はformをボタン分用意するか、 もししはjavascriptをお勧めします。 全然検討違いな解答だったらすみません。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
どうも、IEのバグみたいな感じですね。 FireFoxでは期待通りに動きます。 しょうがないので、 <input type="submit" name="bknk" value="back"> <input type="submit" name="bknk" value="now"> <input type="submit" name="bknk" value="next"> を使われてはいかがでしょうか もしくは、スクリプトでなんとかするという方法もあるかもしれませんが・
補足
やっぱりそうですかね。 もし、IEの修正パッチが配布されて改善されたとしても、 当分はエラーの出る人とでない人が混同する期間が発生するので、 別のボタン方式に変えようと思います。 いや~これが便利だと思ったんですが・・残念。