在PHP中设置SESSION变量

时间:2013-08-22 22:22:04

标签: php javascript jquery html ajax

Page1.php有一个变量“flag”,其值为1。单击时,将调用javascript函数“ajaxreq()”,并在下面显示“单击我”文本(来自page2.php的ajax请求)。

当点击出现的“click me”时,它会调用“ajaxreq2(3)”,并显示短信“success”。在单击显示的文本消息“success”时,div内容(id:displayLater)被设置为显示,这是迄今为止隐藏的。此div必须在$ flag变量中包含$ _SESSION ['tag']的更新值。我该如何更新?

在这段代码中,它给出了错误:page1.php中的“undefined index'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
}

2 个答案:

答案 0 :(得分:0)

你呢

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

然后

function displayNow(tag)
{
  $("#displayLater span").html(tag);
}

答案 1 :(得分:0)

$("#page3contents").load("page3.php",{tagger:x});

将变量发送到POST方法。因此,您必须将page3.php中的行更改为:

$tag=$_POST['tagger'];