将PHP集成到Javascript(意外标记)
为什么javascript会像我们在这里看到的那样返回“意外标记”,JSON数据带有双引号。因此JavaScript需要单引号来显示包含JSON数据的字符串。例如:将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,
<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>