Page1.php には、値 = 1 の変数「フラグ」があります。クリックすると、javascript 関数「ajaxreq()」が呼び出され、「Click me」というテキストが下に表示されます (page2.php からの ajax リクエスト)。
表示された「click me」をクリックすると、「ajaxreq2(3)」を呼び出し、「success」というテキストメッセージを表示します。表示されたテキストメッセージ「success」をクリックすると、今まで隠れていたdivコンテンツ(id:displayLater)が表示されるように設定されます。この div には、$flag 変数の $_SESSION['tag'] の更新された値が含まれている必要があります。どうすれば更新できますか?
このコードでは、「page1.php の未定義のインデックス 'tag'」というエラーが発生します。
変数 $_SESSION['tag'] を利用するには、毎回 page1.php をリロードする必要があります。それ以外の場合は、初期化されないままです。page1.php で更新された変数を使用できる可能性はありますか?
page1.php
<?php
session_start();
$flag=1;
echo "<span onclick='ajaxreq()'>$flag</span>";
?>
<div id="page2contents"></div>
<div id="displayLater" style="display:none">
<span>This is done.</span>
<?php
if(isset($_SESSION['tag']))
$flag=$_SESSION['tag'];
?>
<span onclick="displayNow($flag)">$flag</span>
</div>
page2.php
<?php
echo "<div onclick='ajaxreq2(3)'>Click me</div>";
?>
<div id="page3contents.php"></div>
page3.php
<?php
session_start();
$tag=$_POST['tagger'];
$_SESSION['tag']=$tag;
echo "<span onclick='displayNow($tag)'>success</span>";
?>
JAVASCRIPT 関数は次のとおりです。
function ajaxreq()
{
$("#page2contents").load("page2.php");
}
function ajaxreq2(x)
{
$("#page3contents").load("page3.php",{tagger:x});
}
function displayNow(abc)
{
abc=abc+2; //some operation on abc
$("#somethingToDisplay").show(); //displaying something else
}