将变量从PHP发送到Javascript

时间:2015-08-19 15:17:17

标签: javascript php

我知道我之前已经问过这个问题,但我很难理解我得到的答案。我在两个单独的文件中有以下代码,其中一个是javascript,另一个是php:

的Javascript

  xmlhttp=new XMLHttpRequest();
  xmlhttp.onreadystatechange=function() {
    if (this.readyState==4 && this.status==200) {
       document.getElementById("dummy").innerHTML=this.responseText;
    }
  }
  xmlhttp.open("GET","getgames.php?yearFilter="+yearFilter,true);
  xmlhttp.send(null);

PHP

$yearFilter = (int)$_REQUEST["yearFilter"];
$dummyvariable = 123245;

我一直在使用javascript文件将变量传递给php,但我无法弄清楚如何从php BACK向javascript文件发送变量(例如虚拟变量示例)。我知道结果最终会出现在" this.responseText"但我不知道要在php文件中放入什么代码才能将其发送到那里。我一直被告知要回声"变量到javascript,但每当我尝试所有我看到的是变量被打印到屏幕上,我没有看到任何证据,它在javascript中存储。我错过了什么?

2 个答案:

答案 0 :(得分:1)

你可以像这样输出变量值

$dummyvariable = 123245;
echo $dummyvariable;

所以现在在javascript中

document.getElementById("dummy").innerHTML=this.responseText;

此行将123245添加到#dummy id

如果你想将多个变量值发送到javascript中,只需使用json

进行响应 像那样

$dummyArray = json_encode(array("var1"=>"x1","var2"=>"x2"));
echo $dummyArray;

现在在javascript中使用此行代码

var response = JSON.parse(this.responseText);

在这种情况下,现在响应包含var1和var2的值... 这是如何使用

alert(response.var1); // this will return x1;
alert(response.var2); // this will return x2;

答案 1 :(得分:0)

您需要在响应文本中传递它。

echo $dummyvariable

请记住,php所做的只是构建一个将被发送到浏览器的文件。除了该文件,没有其他信息发送到浏览器。

另外,我建议用JSON编码(参见Zebi Rajpot answert)