move
此代码显示cat,这是将javascript变量等同于php变量的有效方法,
答案 0 :(得分:0)
有效可能不是我会用的词。它是否有效,对我来说是一个更重要的问题。通常,因为PHP在将页面返回到浏览器之前在服务器上运行,然后解释并执行JavaScript,所以你肯定可以编写JS将使用的变量。那么这会有用吗?肯定的。
有更好的方法吗?是的,一点没错。通常,您不希望驻留在PHP脚本中的可执行JS语句块。这只会使事情变得混乱,使得它们很难维护。我宁愿让JS通过对PHP服务的AJAX调用来请求值。如果你必须使用这种方法,我仍然会更好地区分问题。
编辑:这对我有用:
<html>
<head>
<title>PHP-JS Writer</title>
</head>
<body>
<?php
$a = "cat";
echo "<script>var b = '$a'</script>";
?>
<h1>Writing JS variables with PHP</h1>
<script>
alert(b);
</script>
</body>
</html>
答案 1 :(得分:0)
如果你想将PHP变量转换为Javascript,你最好使用json_encode,因为它可以处理所有的转义等等:
<?php $a = "some value"; ?>
<script>
var a = <?php echo json_encode($a); ?>;
console.log(a);
</script>
您也可以将它用于更复杂的结构:
<script>
var a = <?php echo json_encode(array('property' => 'value')); ?>;
console.log(a.property);
</script>
当然,PHP被评估为服务器端和JavaScript客户端,所以没有办法让JavaScript“与PHP交谈”,就好像它在同一个执行范围内一样,根据定义它们并不是这样。这是序列化和反序列化的一个非常基本的概念,让一个平台使用另一个平台的数据。
您可以实现异步请求(“ajax”)以从服务器检索数据,并让服务器以JSON响应,因此Javascript引擎可以本机解析响应内容。这样你的客户端就能够在不重新加载的情况下重新检索数据,但需要做(至少)两个HTTP请求的缺点。