我有一个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) . "';"; ?>