• ベストアンサー

formで複数のボタンを使いたい

htmlの問題なので、カテゴリがhtmlかphpか迷いましたがphpで質問します。 htmlにおいて、form中にsubmitボタンを2個置きたいのです(例、修正ボタンと削除ボタン)。普通ならnameで区別しろということになり、飛び先(例えばaction=judge.php)中でnameで分岐させることになると思います。 ところが、現在phpフレームワークベースで開発しており、上記2つの処理を行うphpがすでにあるため、htmlからは、ボタンのactionによりそれぞれ別のphpを呼び出したいのです。以下に擬似コードを示しますが、以下のようにformが2つだと商品コード入力が2つになり、なんともおかしいので困っています。 form method=post action=edit.php input type=text 商品コード, input type=submit 修正 form method=post action=delete.php input type=text 商品コード, input type=submit 削除 質問のように1つのformに対して複数のsubmitを置くか、あるいは2つのformでも上記商品コードが1つであれば問題ないので、もしそのような方法があればご教示をよろしくお願いします。

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

  • ベストアンサー
  • mpx
  • ベストアンサー率71% (149/209)
回答No.2

PHPとは関係なさそうですが、1つのformでsubmitによりactionを切り替えたい時 私なら下記のようなコードを使います。参考になれば幸いです <form name="form1" method="POST"> <input type="text" name="code" value="商品コード"> <input type="button" value="修正" onClick="javascript: form1.action ='edit.php';submit();" /> <input type="button" value="削除" onClick="javascript: form1.action ='delete.php';submit();" /> </form>

mocapapa89
質問者

お礼

はい、本来はphpとは関係ありませんが、教えていただいたものが、求めていた答えでした。ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

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

>上記2つの処理を行うphpがすでにあるため 結局、一度うけるページはひとつにして、そこからPEARの HTTP_Requestなどで分岐してPOSTを各ページにおくってやるのが もっとも単純なフローでは? もしそうではないなら環境依存になりますがjavascriptなどの クライアントサイドのプログラムで処理することになります

mocapapa89
質問者

お礼

>結局、一度うけるページはひとつにして、 やっぱりそうですよね。 フレームワークにはcontroller->redirect()関数があるので、受け口のphpを追加すれば処理できると思います。ただ、そうしなかったのはphp毎にhtmlを用意しなければならないようで、htmlまで増やしたくなかったので。 javascriptも検討して、いずれか容易な方法で実装しようと思います。ありがとうございました。

すると、全ての回答が全文表示されます。