2012-07-26 51 views
0

加载如果我有一个包含以下内容的PHP页面:看到PHP变量使用AJAX

<?php $showLink = true; ?>

,然后使用AJAX加载一些内容有以下几点:

<?php if($showLink) { ?> 
    <a href="#">This link should appear if the variable exists</a> 
    <?php } ?> 

加载的页面无法在父页面中看到变量...任何想法为什么?

我试过使用两个会话和定义和发生同样的问题,也尝试在ajax设置中将缓存设置为false。

真搞不清楚这个...

+0

为什么?' – asprin 2012-07-26 10:38:36

+1

当你调用一些PHP脚本使用我不明白你的'网页加载的意思看不到父页面变量...任何想法ajax新的php进程已启动,因此在此过程中无法访问之前进程中的变量。会话必须正常工作。你能证明,你是怎么试过的? – Leri 2012-07-26 10:39:47

+0

@asprin他可能会得到'Undefined variable'。 – 2012-07-26 10:39:49

回答

1
<?php 
session_start(); 
$_SESSION['showLink'] = true; ?> 

<?php 
session_start(); 
if($_SESSION['showLink']) { ?> 
    <a href="#">This link should appear if the variable exists</a> 
<?php } ?> 
+0

在发布之前,我实际上已经想到了这一点,但我会在您回答正确的情况下向您提供验收:) – Cameron 2012-07-26 10:57:30

2

做AJAX调用时只是通过$showLink作为参数。然后在您使用AJAX调用的服务器端脚本中处理该变量。

编辑:这是我看不到实际的源代码或有更多信息的最佳建议。

0
<?php 

if($showLink == true) { 
    echo '<a href="#">This link should appear if the variable exists</a>'; 
} 

?> 

您不需要关闭并重新打开php标记。而且你需要实际比较变量,或者如果你想检查它是否存在使用isset($showLink)

这就是我可以真正说出你给出的东西。