如何使用JavaScript访问PHP变量


How do you access a PHP variable with JavaScript?

我有一个PHP文件,它创建了一个存储在变量中的随机字符串。我想用JavaScript访问这个变量,但我在网上找到的方法似乎不工作。这是我到目前为止的代码:

var test = "<?php echo json_encode($myVariable); ?>";
alert(test);

$myVariable只是一个字符串:"testing".

我认为"测试"会被警告,但代码本身是(<?php echo json_encode($myVariable); ?>)。当我去掉引号时,什么都没有发生。我是JavaScript的新手,所以我不确定什么是错的。是否有另一种方式,我可以访问PHP变量与JavaScript?

你可以通过这个

传递变量内容
var test = "<?php echo $myVariable; ?>";
alert(test);

有几种方法可以通过javascript从php访问变量AJAX/Cookies/_SESSION或直接回显到javascript。

具有更好的层与层之间的分隔,它也允许异步传输。但是如果有很多变量需要从php请求,添加HTTPrequest会导致网站速度变慢。

<<p> 饼干/strong>

我不建议这样做,因为客户端会有很多必要的数据存储。

_SESSION

我建议您使用_SESSION,因为新开发人员会发现它更容易使用。它的工作原理类似于cookie,但唯一的区别是一旦页面关闭,数据将被删除。

直接回显到javascript

易于实现,但代码实践很糟糕。

以上所有答案我解释的相当模糊,做你的研究主题,寻找_SESSION开始,然后移动到AJAX如果合适的话。

代码范例PHP

如果你从mysql获取数据

$_SESSION["AnyVariable"] = my_sql_query ("SELECT someData FROM someTable")

或者如果它只是PHP中的一个变量

$SESSION["aVariable"] = whateverValue;
JavaScript

<script type="text/javascript">
    function someFunction()
    {
        var someVariable = '<%= Session["phpVariableSessionName"] %>';
        alert(someVariable);
    }
</script>

json_encode为javascript生成准备好的输出,你不能把它放在引号里:

var test = <?php echo json_encode($myVariable); ?>;

再试一试……

<?php echo "var test = '" . json_encode($myVariable) . "';"; ?>