【发布时间】:2013-08-25 20:25:18
【问题描述】:
Page1.php 有一个 value=1 的变量“flag”。单击时,将调用 javascript 函数“ajaxreq()”,并在下方显示文本“Click me”(来自 page2.php 的 ajax 请求)。
当点击出现的“click me”时,调用“ajaxreq2(3)”,并显示文本信息“success”。单击显示的文本消息“成功”时,div 内容(id : displayLater)设置为显示,一直隐藏到现在。这个 div 必须在 $flag 变量中包含 $_SESSION['tag'] 的更新值。如何更新?
在这段代码中,它给出了错误:“page1.php 中未定义的索引'标签'”。
为了使用变量 $_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
}
【问题讨论】:
-
您的问题是什么?您是否不清楚错误消息?
-
这个信息对我来说很清楚。我需要解决这个问题。
-
好吧,如果您想清楚该消息,那么我会说解决方法很明显。所以让我进一步问:是什么让您难以编写解决方法?你在哪里遇到了障碍?
-
这是 page1.php 中的 Session 变量 $_SESSION['tag'] 造成的问题。实际上,该变量是在 page3.php 上初始化的,而我在 page1.php 上使用了它。这就是为什么在加载page1.php 时,会弹出$_SESSION['tag'] 尚未初始化的错误!
-
您可以确定情况确实如此。否则 PHP 不会给你那个错误。仔细检查会话是否已启动,并且正确的会话名称和会话 ID 已分配给请求。
标签: php javascript jquery html ajax