フォームのACTIONスクリプト数

[統計] HTMLからXHTMLへの移行を進めていますか?



0   名前: : 2004/06/10 19:14
一つのフォームに複数のボタンがあって、それぞれが呼ぶACTION SCIPTが違うということはできますか?
例えば、
<FORM NAME=test ACTION=action1.php METHOD=post>
<TABLE>
............
<INPUT TYPE=submit NAME=submit VALUE=submit> <--action1.phpを実行
</FORM>

でも、FORM内に更にボタンを増やして、
<INPUT TYPE=submit NAME=submit VALUE="データを追加する">
このボタンが押されたら、action2.phpを呼ぶようにしたいですが。
HTML上、テーブルの設計関係上、ボタンが上の<FORM>内に書かなければなりません・・
どのようにこのボタンだったら、action2.phpスクリプトを呼ぶようにすればいいですか?

1   名前: Sinryow : 2004/06/11 00:43   [URL
HTMLソースはそのままで良いです。

action1.php の中で $_POST['submit'] の値を調べてみて下さい。
「submit」ボタンを押した時はこの値が「submit」になり,「データを追加する」ボタンを押した時はこの値が「データを追加する」になります。
ですから,action1.phpの先頭で

if($_POST['submit']=="データを追加する"){
require 'action2.php';
exit(0);
}

とすればよいでしょう。

2   名前: : 2004/06/11 10:48
それもやってみましたが、やはりaction1.phpが呼ばれました・・
他の方法は思い浮かべないです・・ *考え中*

3   名前: : 2004/06/14 17:21
変更して、
<INPUT TYPE=text NAME=price SIZE=20>
<INPUT TYPE=button NAME=submit VALUE=add onClick=add()>
にして、JavaScriptを使うことにした。

<script language="JavaScript" type="text/JavaScript">
<!--
function add(){
............ここでPHP呼びたいですね・・・
テキストボックスpriceの値をPHPに渡して、SQLでDBに登録したいです。

}

JSはどのようにPHPを呼べばいいでしょうか・・

4   名前: Sinryow : 2004/06/15 01:09   [URL
それなら楽ですね。
location.href="action2.php?value="+document.test.price.value;
として,action2.php側で $_GET['value'] の値を見ればよいでしょう。

5   名前: : 2004/06/15 13:30
そうですね・・
ただ、もう一つの問題が存在してます。

action2.phpを実行し終わったら、再び元のフォームに戻りたいのですが・・
Header(Location:元のフォーム)で実現しようとしたところ、Headerをmodifyできない
というエラーが表示されました・・

一覧へ戻る