Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将PHP集成到Javascript(意外标记)_Javascript_Php - Fatal编程技术网

将PHP集成到Javascript(意外标记)

将PHP集成到Javascript(意外标记),javascript,php,Javascript,Php,为什么javascript会像我们在这里看到的那样返回“意外标记”,JSON数据带有双引号。因此JavaScript需要单引号来显示包含JSON数据的字符串。例如: <html> <head> <title>By José Manuel Abarca Rodríguez</title> <script type="text/javascript"> <?php $arr = array('a' => 1,

为什么javascript会像我们在这里看到的那样返回“意外标记”,JSON数据带有双引号。因此JavaScript需要单引号来显示包含JSON数据的字符串。例如:

<html>
  <head>
    <title>By José Manuel Abarca Rodríguez</title>
    <script type="text/javascript">
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
?>

var txt = '<?php echo json_encode($arr); ?>'; // NOTICE THE SINGLE QUOTES!!!

function show_json () {
document.getElementById("my_div").innerHTML = txt;
}
    </script>
  </head>
  <body>

    <button onclick="show_json();">Get JSON data from server</button>
    <br/>
    <br/>
    <div id="my_div">
    </div>

  </body>
</html>

何塞·曼努埃尔·阿巴卡·罗德里格斯
var txt=“”;//注意单引号!!!
函数show_json(){
document.getElementById(“my_div”).innerHTML=txt;
}
从服务器获取JSON数据



将以前的代码复制粘贴到文本文件中,用PHP扩展名保存,并在浏览器中使用localhost/filename.PHP运行。它工作正常。

因为PHP必须在服务器上处理。浏览器对PHP一无所知。除非您的服务器配置为通过PHP解释器运行.js文件,否则PHP代码将在客户端解释为(不正确)javascript@JoseManuelAbarcaRodr在一条执行的回音行中,您不需要分号(当然,它是可读性的首选,但不是必需的)但是,由于它是对JSON的回应,他应该有引号。php只在包含php扩展名的文件中执行(即
.php
.phtml
.php5
,等等)。由于您的php不在php文件中,Web服务器不会执行此代码。更好的做法是创建一个AJAX请求,从可以执行php的服务器异步拉入数据。JSON数据也可能带有特殊字符。
<html>
  <head>
    <title>By José Manuel Abarca Rodríguez</title>
    <script type="text/javascript">
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
?>

var txt = '<?php echo json_encode($arr); ?>'; // NOTICE THE SINGLE QUOTES!!!

function show_json () {
document.getElementById("my_div").innerHTML = txt;
}
    </script>
  </head>
  <body>

    <button onclick="show_json();">Get JSON data from server</button>
    <br/>
    <br/>
    <div id="my_div">
    </div>

  </body>
</html>