※ ChatGPTを利用し、要約された質問です(原文:FORMタグの中の2つのボタンの処理について)
FORMタグの中の2つのボタンの処理について
このQ&Aのポイント
PHPを使ったWebページで、FORMタグ内に2つのボタンを配置し、ボタンが押された時にそれぞれのフレームの内容を更新する処理を実装したいです。
具体的には、ボタン1が押された場合には下側のフレームの内容を、ボタン2が押された場合には上側のフレームの内容を書き換えたいです。
現在は下側のフレームの更新処理は実装できていますが、上側のフレームの更新処理の実装方法がわかりません。どのように記述すればいいですか?
PHPの勉強を始めたばかりのものです。
よろしくお願いします。
以下のようなページを作りたいと考えています。
フレームで上下に分けられたページで、上側を「upper.php」、下側を「lower.php」とします。
下側(lower.php)に3つの入力欄〔入力欄(1)〕〔入力欄(2)〕〔入力欄(3)〕と2つのボタン【ボタン(1)】【ボタン(2)】があります。
【ボタン(1)】は、〔入力欄(1)〕のデータをもとに、フレームの下側の内容を書き換えます。
【ボタン(2)】は、〔入力欄(1)〕〔入力欄(2)〕〔入力欄(3)〕の情報をもとに、フレームの上側の内容を書き換えます。
自分なりに勉強して、とりあえず、下記のようにしたのですが、上のページを更新する部分をどのようにすればいいのか分かりません。
ご教授、よろしくお願いします。
<「lower.php」の中の記述>
<?php
if ($_POST[Button_1]) {
下側のフレームの更新処理に関わる部分
(この部分はうまく機能しています)
} elseif ($_POST[Button_2) {
上側のフレームを更新する処理
(★★この部分をどのように記述すればいいのかわかりません★★)
}
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<INPUT TYPE="text" NAME="INPUT_1">
<input type="submit" name="Button_1" value="登録">
// 「INPUT_1」のデータを使って、下側のフレームの内容を更新
<INPUT TYPE="text" NAME="INPUT_2">
<INPUT TYPE="text" NAME="INPUT_3">
<input type="submit" name="Button_2" value="登録">
// 「INPUT_1~3」のデータを使って、上側のフレームの内容を更新
</form>
よろしくお願いします。
補足
ご回答、ありがとうございます。 ご記入いただいた【押されたボタンによってform要素のtarget属性(送信先の「フレーム名」)を書き替えてからPOSTするようにJavaScriptで処理することになります。】が具体的に何を意味するのかは理解できなかったのですが、以下のような方法を思いついて、とりあえず、うまく動いています。 <BODY onload="document.FRM.submit();"> <?php if ($_POST[Button_1]) { 下側のフレームの更新処理に関わる部分 } elseif ($_POST[Button_2) { // 要するに、一度、別のデータで受けて、再び、POSTする。 $DATA_1 = $_POST["INPUT_1"]; $DATA_2 = $_POST["INPUT_2"]; $DATA_3 = $_POST["INPUT_3"]; ?> <FORM Name="FRM" METHOD="POST" action="upper.php" target="upper"> <INPUT TYPE="hidden" NAME="INPUT_1" VALUE="<?php echo $DATA_1; ?>" > <INPUT TYPE="hidden" NAME="INPUT_2" VALUE="<?php echo $DATA_2; ?>" > <INPUT TYPE="hidden" NAME="INPUT_3" VALUE="<?php echo $DATA_3; ?>" > </FORM> } ?> <form action="<?=$_SERVER['PHP_SELF']?>" method="post"> <INPUT TYPE="text" NAME="INPUT_1"> <input type="submit" name="Button_1" value="登録"> // 「INPUT_1」のデータを使って、下側のフレームの内容を更新 <INPUT TYPE="text" NAME="INPUT_2"> <INPUT TYPE="text" NAME="INPUT_3"> <input type="submit" name="Button_2" value="登録"> // 「INPUT_1~3」のデータを使って、上側のフレームの内容を更新 </form>