• ベストアンサー

PHPでフォームからの送信

PHPでフォームからデータを送信する方法について教えてください。例えばPHPファイルの中に下の様にフォームを作成して、送信ボタンを2つ作ります。一つのボタンをクリックすると全てのフォームの情報が送信されてしまいますが、独立して送信できるようにはできないのでしょうか。簡単にでもできるかできないかを教えていただけましたら、あとは自分でなんとかがんばりますので、どなたか教えていただけれますと幸いです。宜しくお願いします。 <form action="abc.php" method="post"> AAA:<input type="text" name="simei"> BBB:<input type="password" name="pass"> <input type="submit" value="送信"> </form> <form action="abc.php" method="post"> CCC:<input type="text" name="simei"> DDD:<input type="text" name="pass"> <input type="submit" value="送信"> </form>

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

  • ベストアンサー
  • 662bpm
  • ベストアンサー率50% (1/2)
回答No.2

例示いただいた二つのフォームで実際に試してみました。 どちらか片方の送信ボタンを押した時、一見全てのフォーム情報が送られているように見えますが、実際は正しく動作していて、それぞれ独立した情報が送られてきています。それが何故全て送信されているように見えるかですが、どちらのフォームから送信されたデータなのかわからないからだと考えられます。 まず、シンプルな解決方法を考えると、各テキストフォームのname属性に、それぞれ別の名称を使用する方法があります。 <form action="abc.php" method="post"> AAA:<input type="text" name="simei1"> BBB:<input type="password" name="pass1"> <input type="submit" value="送信"> </form> <form action="abc.php" method="post"> CCC:<input type="text" name="simei2"> DDD:<input type="text" name="pass2"> <input type="submit" value="送信"> </form> 上記でも可能ですが、もう一つ工夫を進め、hidden属性を使用して、どのフォームから送られたものなのかを送信することも出来ます。 <form action="abc.php" method="post"> <input type="hidden" name="mode" value="form1"> AAA:<input type="text" name="simei"> BBB:<input type="password" name="pass"> <input type="submit" value="送信"> </form> <form action="abc.php" method="post"> <input type="hidden" name="mode" value="form2"> CCC:<input type="text" name="simei"> DDD:<input type="text" name="pass"> <input type="submit" value="送信"> </form> これだと、$_POST["mode"]を確認し、"form1"ならば、上のフォーム。"form2"ならば、下のフォームから送信されたものだと判断することが出来ます。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

例示いただたようにformをわければよいのでは? javascriptを使えばもう少し特殊なこともできると思いますが・・・ たとえばこんな感じ・・・ <script> function submitAll(f){ var sub=document.getElementById("sub"); for(var i=0;i<sub.length;i++){ var obj=sub[i].cloneNode(true); if( obj.type!="submit"){ obj.type="hidden"; f.appendChild(obj); } } } </script> <form action="abc.php" method="get" id="sub"> AAA:<input type="text" name="a"> BBB:<input type="text" name="b"> <input type="submit" value="AとBだけ"> </form> <form action="abc.php" method="get"> CCC:<input type="text" name="c"> DDD:<input type="text" name="d"> <input type="submit" value="全部" onClick="return submitAll(this.form);"> </form>

ityounomi
質問者

補足

アドバイスありがとうございます。がんばってみます。 ありがとうございました(^▽^)。