等同Javascript和PHP变量

时间:2015-05-23 15:34:39

标签: javascript php html variables web

move

此代码显示cat,这是将javascript变量等同于php变量的有效方法,

2 个答案:

答案 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请求的缺点。