在jQuery脚本中调用时,PHP变量为空

时间:2014-09-16 04:17:48

标签: javascript php jquery

我在将PHP变量调用到jQuery脚本时遇到了一些麻烦。基本上,我运行一些函数来确定用户是否已登录,如果是,则将其存储为$ loggedin = 1。如果页面上的某个人没有登录,当点击一个按钮时,我希望他们被提示登录(我显然仍然确保用户在任何处理之前都在服务器端实际登录数据)。我四处搜索,发现将信息传递给jQuery的最简单方法是将脚本创建为PHP文件,以便将其回显到脚本中。以下是我使用的高级代码:

调用脚本:

<?php
 $loggedIn = 1;
 <script src="../buttonScript.php"></script>
?>

脚本:

<?php header("Content-type: application/javascript"); ?>
var buttonScript = function(){
 var loggedIn = <?php if($loggedIn===1){echo "1";}else{echo "0";} ?>;
  $("#button").click(function(){
  alert(loggedIn);
 });
};

$(document).ready(buttonScript);

当我在$ loggedIn等于1的情况下单击按钮时,警报会给我0.实际上,如果我只是在脚本本身中回显$ loggedIn,则该值完全为空并且脚本错误输出并且根本不会弹出警报。我确信PHP变量$ loggedIn实际上有一个变量,因为如果我在调用脚本之前回显变量,我就会成功看到数字1.我在这里缺少什么?

注意:为了清楚起见,在脚本中添加了几行代码。

1 个答案:

答案 0 :(得分:1)

试试这个

<?php
 $loggedIn = 1;
 require("/path/buttonScript.php");
?>

<强> buttonScript.php

<script type="text/javascript">
 var buttonScript = function(){
 var loggedIn = <?php echo $loggedIn; ?>;
  $("#button").click(function(){
  alert(loggedIn);
 });
};

$(document).ready(buttonScript);
</script>