如何通过jquery访问PHP中声明的变量

时间:2011-08-18 18:25:21

标签: javascript jquery

例如,我在PHP的服务器端声明了一些变量,如test

echo('var test = ' . json_encode($abc));

现在我想在Jquery中使用这个测试变量..我可以使用它吗?

我需要使用什么功能?

例如我有:

我有这样的后端PHP代码

$abc = no
echo "var test= ".json_encode($abc);

我希望jquery执行以下操作(客户端)

$(document).ready(function(){
function(json) { 
if($abc == no )//this i what i want to be achieved

  }
}

3 个答案:

答案 0 :(得分:1)

我认为,您不了解前端(JavaScript)和后端(PHP)之间的差异。你不能直接从javascript访问php变量。您需要向某些php文件发出Ajax请求,这将返回您指定格式所需的一些数据。 例如:

<?php
    $result = array('abc' => 'no');
    echo json_encode($result); 
?>

这是名为data.php的服务器端脚本。在Javascript中你可以这样做:

$(document).ready(function(){
    $.getJSON('data.php', function (data) {
        if(data.abc === 'no') {
            your code...
        }
     });
}

答案 1 :(得分:0)

您正在比较错误的变量:

<?php

echo <<<JS
    <script type="text/javascript">
        var test = {json_encode($abc)};
        $(document).ready(function(){
            if(test == 'no' )
                // here you go
            }
        });
    </script>
JS;

答案 2 :(得分:0)

如果你真的想(虽然我不认为这是一个非常好的做法),你可以将PHP变量的值回显到这样的javascript变量中:

<script type="text/javascript">
   var phpValue = <?php echo $abc; ?>;
   alert(phpValue);
</script>

在很多情况下,我可以看到这很危险,但这实际上是将$abc的值反映到页面上(当然是在脚本标记内部)。然后,当浏览器运行javascript时,浏览器会看到它:

<script type="text/javascript">
    var phpValue = no;
    alert(phpValue);
</script>

这是非常基本的,但是你可以通过使用那种代码了解你可以做些什么。