我试图将php变量传递给javascript变量(在不同的文件上)。
myPHP.php
<?php
include'myJS.php';
$hello="Hello";
echo json_encode($hello);
myJS.php
<html>
<head>
<title>Hello</title>
<script>
var data;
var oReq = new XMLHttpRequest();
oReq.onload = function () {
data = this.responseText;
alert(data);
};
oReq.open("get", "myPHP.php", true);
oReq.send();
</script>
</head>
</html>
我正在运行myPHP.php文件(而不是myJS.php)。但是,我没有在变量&#39;数据&#39;中得到任何错误。在myJS.php文件中,不是存储只有PHP变量的值,而是存储整个myJS.php文件。如何避免这种情况并仅存储变量值?
P.S。这是一个示例代码,我将使用动态数据实现此逻辑,因此请建议我使用可以处理动态数据的解决方案。
答案 0 :(得分:3)
您不需要ajax用于静态数据,只需生成javascript:
<?php
$hello="Hello";
?>
<html>
<head>
<title>Hello</title>
<script>
var data = "<?php print $hello; ?>";
</script>
</head>
</html>
如果数据不是静态的,并且您想使用ajax,请将文件分开:
myJS.php:
<html>
<head>
<title>Hello</title>
<script>
var data;
var oReq = new XMLHttpRequest();
oReq.onload = function () {
data = this.responseText;
alert(data);
};
oReq.open("get", "myPHP.php?ajax=1", true);
oReq.send();
</script>
</head>
</html>
这是myPHP.php:
<?php
if(!isset($_GET['ajax']))
{
include('myJS.php');
}
else
{
$hello="Hello";
echo json_encode($hello);
}