在JavaScript变量中存储PHP变量的值
问题描述:
我试图将一个php变量传递给一个javascript变量(在不同的文件上)。在JavaScript变量中存储PHP变量的值
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)。但是,我没有收到任何错误,但是,在myJS.php文件中的变量'data'中,不是只存储PHP变量的值,而是整个myJS.php文件被存储。我怎样才能避免这种情况,并只存储变量值?
P.S.这是一个示例代码,我将用动态数据实现这个逻辑,所以请建议我可以使用动态数据的解决方案。
答
你不需要为静态数据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);
}
确保'myJS.php'不输出任何内容。包括HTML,文本,JavaScript等 – jeroen
如何检查变量值是否存储在JS变量中? – Awani
我不确定你的意思,为什么包含一个js文件?你似乎并不需要它。 – jeroen