• ベストアンサー

複数フォームのデータ渡しについて

http://okwave.jp/qa2522271.html で質問したのですが、質問内容が若干変更なりましたので、またご教授頂けたらありがたいです。 現在のコード <script language="JavaScript"> function send(v,fname){ var f=document.forms[fname]; f.botan.value=v; f.submit(); } </script> <form name="Form1" action="tesuto1.php" > <input type="hidden" name="botan"> 中略 </form> <form name="Form2" action="tesuto2.php" > <input type="hidden" name="botan"> 中略 </form> <form name="Form2" action="tesuto3.php" > <input type="hidden" name="botan"> 中略 </form> <form> <input type="button" value="送信" onClick="send(this.value,'Form1')"> <input type="button" value="取消" onClick="send(this.value,'Form2')"> <input type="button" value="確認" onClick="send(this.value,'Form1')"> </form> 前回と違うのは送信ボタンをクリックしたときに、どのボタンがクリックされたのかを判別して(ここは同じです)form1とform3のデータを渡したいのですが。 よろしくお願いします。

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

  • ベストアンサー
  • qtea
  • ベストアンサー率77% (38/49)
回答No.2

とりあえず、Form2がふたつあって、Form3がありませんね。 あと、確認ボタンの、クリックのところのフォーム名がForm1になっています。 場合によるのでしょうが、ひとつのPHPにまとめてしまって、処理を分岐させた方が、楽かもしれません。 submitボタンにname属性をつけてあげれば、どのボタンを押されたのか判断できます。 #HTML側 <form action="tesuto123.php"> <input type="submit" name="botan" value="送信"> <input type="submit" name="botan" value="取消"> <input type="submit" name="botan" value="確認"> </form> #PHP側 tesuto123.php echo @$_POST["botan"]."がクリックされました。"; あとは…フォームをまとめてしまって、フォームのactionの値を変更してから、submitするとか… これだと、他のフォームの値がいっぱいあっても、いちいち、コピーする手間が省けます。 <script language="JavaScript"> function send(v,url){ document.Form1.botan.value=v; document.Form1.action=url; document.Form1.submit(); } </script> <form name="Form1"> <input type="hidden" name="botan"> 中略 <input type="button" value="送信" onClick="send(this.value,'tesuto1.php')"> <input type="button" value="取消" onClick="send(this.value,'tesuto2.php')"> <input type="button" value="確認" onClick="send(this.value,'tesuto3.php')"> </form>

kurateru
質問者

お礼

ありがとうございます。フォームを一つにまとめてみたら出来ました。

その他の回答 (1)

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.1

こんちくは。 えーと。。。 >>どのボタンがクリックされたかを判別して それの必要性は? <input type ="button" value ="送信" onClick="sousin()"> <input type ="button" value ="取消" onClick="torikesi()"> <input type ="button" value ="確認" onClick="kakunin()"> で、別々のところに送ってやるのはダメなのですか? >>form1とform3のデータを渡したい。 渡し先が同一ページなら、submitかければ送られてます。 (ただ、phpは自分、勉強してないので、phpと絡んでいたら。。。不明ですが。 Form1を1ページ目、Form3を3ページ目にそれぞれ。。。とか言うんでしたら、それぞれ別ページに開かなければいけませんが、Window。Openででも開いて、それぞれのページから、Form1の部分だけ、Form3の部分だけ。を引っ張ってくればいいのではないかと思います。

kurateru
質問者

補足

早速のご回答ありがとうございます。 PHPと絡んでいるのです。 php側で switch (@$_POST["botan"]){ case "送信": 以下略 という感じで条件分岐させているのです。