• 締切済み

この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 を使えば良いとされているのですが。 なにか、根本的なところに間違いなどありませんか? どなたかご指摘お願いします。

  • PHP
  • 回答数2
  • ありがとう数0

みんなの回答

回答No.2

実際試したわけじゃないし、間違っているかもしれないのでこの話は流してもらって結構です。 >フォーム内にsubmitが複数存在してはいけないのでしょうか。 確か全て送信されてしまったと思います。 1 つのフォームなのでどのボタンを押したとか関係なく全てのデータが送信されます (違ったらごめんなさい) submitはformのアクションへ飛ばす処理だけをし、 どのボタンを押したかは判断していないと思います。 複数使う場合はformをボタン分用意するか、 もししはjavascriptをお勧めします。 全然検討違いな解答だったらすみません。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

どうも、IEのバグみたいな感じですね。 FireFoxでは期待通りに動きます。 しょうがないので、 <input type="submit" name="bknk" value="back"> <input type="submit" name="bknk" value="now"> <input type="submit" name="bknk" value="next"> を使われてはいかがでしょうか もしくは、スクリプトでなんとかするという方法もあるかもしれませんが・

CANALVOR
質問者

補足

やっぱりそうですかね。 もし、IEの修正パッチが配布されて改善されたとしても、 当分はエラーの出る人とでない人が混同する期間が発生するので、 別のボタン方式に変えようと思います。 いや~これが便利だと思ったんですが・・残念。

関連するQ&A

  • submitではなくbuttonで送信

    事情があり、submitではなくbuttonでフォームのデータを送信したいのですが、以下のように書くとbuttonでは4567が送信されません。 <form action="test.cgi" method="post"> <INPUT type="hidden" name="aaa" value="1234"> <INPUT type="submit" name="bbb" value="4567"> </form> ↓ <form action="test.cgi" method="post"> <INPUT type="hidden" name="aaa" value="1234"> <INPUT type="button" name="bbb" value="4567" onclick="submit();" > </form> submitと同じように、bbbのデータ4567も送信するにはどのように書けばよいのでしょうか? 宜しくお願いします。

  • IEでのフォームメールで、ENTERキーでのsubmitを動かさないようにしたいのですが。。

    IEでフォームメールを使用したときにENTERキーを押下するとsubmitが動いてしまうのですが、その動きを止める為に 1.送信ボタンは   <input type="button" name="submit" value=" 送信する " onClick="subm()"> で関数subm()で function subm() { document.form1.submit(); } という動きと 2.送信ボタンに<input type="button" name="submit" value=" 送信する " onClick="javascript:document.form1.submit()"> という動きの2つを試してみたのですが、どちらもエラーになってしまいました。 原因がわからないので調べているところですが、もしどなたか他の方法をご存知でしたら、教えていただけませんでしょうか?

  • Submitしたボタンを知る方法は?

    <form onsubmit="function()"> <button type="submit" id="button1" name="cmd" value="1">1番を選ぶ</button> <button type="submit" id="button2" name="cmd" value="2">2番を選ぶ</button> </form> とした場合に、function()内で、押したボタンを知るにはどこを見ればよいでしょうか? ちなみに、このあと適当なcgiにpostし、name,valueはそちらで処理する予定ですので、この2つの要素については大幅な変更は出来ません。

  • submitボタン上の文字とvalue=の数字

    CSS3 + HTML5 でゲームを作っています。 Formのsubmitボタンを設置する必要があるのですが、ボタン上に表示する文字とvalue=の文字を分ける必要があります。 <input type="submit" name="point" value="送信する"> 上記では本来であれば数値を入れたいvalue=に、「ボタン上に表示する文字」を入れなければならないため使えません。 <button type="submit" name="point" value="10050">購入する</button> であれば、valueに数値を置き、ボタン上に文字を置けるため当方のニーズに叶うのですが、HTML5上で見るとボタンの大きさが<input type="submit>の3分の1くらいになってしまいます。 従い<button type="submit" name="point" value="10050">購入する</button> のボタンの大きさを変更する方法がわかればいいと思いますが、この方法でなくても構いません。 HTML5上で、当方のニーズに合うボタンを作るためにはどうしたらいいでしょうか?

    • ベストアンサー
    • HTML
  • PHPのsubmitボタンが複数ある場合

    PHPのsubmitボタンが複数ある場合 PHPにて会計システムを開発しているのですが、計算ボタンと、更新してDBに追加するためのボタンとが混在している場合、 $_POST等で押されたボタンの処理を分けることは可能なのでしょうか?下の例は、 name="calculation"が押された場合は、val1とval2の値を計算し、totalへ値を入れます。 name="update"が押された場合は、それぞれのフォームの値をDBに更新をかけます。 <?php <form action="****.php" method="POST"> <input type="text" name="val1" value="20"/> <input type="text" name="val2" value="30"/> <input type="text" name="total" value="50"/> <input type="submit" name="calculation"/> <input type="submit" name="update"/> </form> ?> お分かりになる方、ご教授お願いいたします。

    • 締切済み
    • PHP
  • onClick="this.form.submit

    ・下記のようなformがあるのですが、 onClick="this.form.submit();" disabledの意味を教えてください ・クリックしたら、このフォーム内容を送信? ・アクション先も指定していないのに、処理はどこへいくのでしょうか? ・また、disabledは? ずっと押せない? <form name="hoge" method="POST"> <input name="hoge" type="button" class="button" value="piyo" onClick="this.form.submit();" disabled> </form>

  • submitについて

    「 <input type=submit value="送信"> 」について。 ボタンの役割というのは分かりますが、submitの使い方がよく分かっていません。このボタンを押した時の処理というのはどこで行うものなのですか。サンプルソースなど、ボタンはsubmitが多く使われているようなのですが・・・。どのようなときに役立つのか教えてください。

    • ベストアンサー
    • HTML
  • サブウインドウにsubmitしたい

    下記のような送信ボタンを押したときに、サブウインドウとして次の画面を開いてテキストボックスに入力した値を表示する方法についてアドバイスいただけないでしょうか。簡単かと思って探したものの、よくわかりませんでした。次の画面はnext.cgiです。送信時にFieldの値をjavascriptの値として取得する部分がよくわかりません。 #あくまでサブウインドウで開く #サブウインドウに値を引き継ぐ <FORM ACTION="next.cgi" METHOD="POST"> <INPUT TYPE="TEXT" NAME="Field" SIZE="12"> <INPUT TYPE="SUBMIT" NAME="Submit" VALUE="送信"></form>

  • submitについて

    <script type="text/javascript"> <!-- function go() { document.getElementsByTagName("input")[3].value+="text"; } //--> </script> <form name="NAME1" action="#" method="get" onSubmit="go()"> <input type="submit" name="submit1" value="送信1" > <input type="submit" name="submit2" value="送信2"> <input type="button" name="submit3" value="送信3" onClick="go()"> <input type="text" name="text1" size="10"> </form> なのですが、送信2のsubmitを4回クリックすると以下のように表示されるのですが、どういう感じで実行されているのかわかりませんので教えていただけないでしょうか? 一応一回目はtext1=textとなるのですがテキストボックスには空になります。 2回目はtext1=textとなりテキストボックスにはtextが入ります。 3回目はtext1=texttextとなりテキストボックスには空になります。 4回目はtext1=textとなりテキストボックスは空になります。 以上よろしくお願いします。

  • フォームのボタンを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

専門家に質問してみよう