プロが教えるわが家の防犯対策術!

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>

?>
お分かりになる方、ご教授お願いいたします。

A 回答 (4件)

<input type="submit" name="calculation" value="calculation"/>


<input type="submit" name="update" value="update" />

それぞれにvalueを入れておくと
$_POST['calculation']、$_POST['update']のどちらかに、押されたボタンのvalueが入ります。

<input type="text">などでエンターキー/リターンキーを押しても、フォームを送信出来るブラウザが多いですが、
その時はsubmitボタンは押してないので、
$_POST['calculation']、$_POST['update']の両方がnullになります。
そのときは「どちらのボタンも押されていない」という判断が出来ます。

JavaScriptのform.submit()で送信しても、<input type="submit">のnameとvalueは送られてないと思います。
    • good
    • 0

if ($_SERVER["REQUEST_METHOD"]=="POST"){ //ポストで飛ばされてきたら以下を処理



if($_POST["calculation"]){
処理内容
}

if($_POST["update"]){
処理内容
}

}

ボタンにより処理を分岐させます。
type="submit"にvalueを設定しないと上記のプログラムは、正常に動作しません。
セキュリティー処理は、省略しております。
    • good
    • 0

押されたボタンだけ、ポストで渡されますので、


if(!isNull($_POST["calculation"])
と言った形で判定できます。
    • good
    • 1

submitにもvalueを設定しているとvalueが送られるよ

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!