プロが教える店舗&オフィスのセキュリティ対策術

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>

よろしくお願いします。

A 回答 (1件)

データがPOSTされてからはどうしようもありません。



押されたボタンによってform要素のtarget属性(送信先の「フレーム名」)を書き替えてからPOSTするようにJavaScriptで処理することになります。

この回答への補足

ご回答、ありがとうございます。

ご記入いただいた【押されたボタンによって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>

補足日時:2014/04/24 18:10
    • good
    • 0

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