0

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
}
4

2 に答える 2

0

How about you

echo "<span onclick='displayNow('".$_SESSION['tag']."')'>success</span>";

And then

function displayNow(tag)
{
  $("#displayLater span").html(tag);
}
于 2013-08-22T22:35:02.047 に答える