JS没有解析PHP ResponseText

时间:2015-03-27 16:48:19

标签: javascript php json responsetext

我有一个JS-PHP脚本,JS将信息发送到PHP脚本,然后在我的HTML页面中显示PHP响应。如果我在一个区域中显示responseText,该脚本可以正常工作。当我尝试解析responseText以便我可以在不同的区域显示它时,脚本不起作用。我哪里错了?

我的PHP脚本结束:

...
$expert = $obj;
$pro = $obj1;
$superview = $obj2;
echo json_encode(array(first=>$expert,second=>$pro,third=>$superview));
?>

PHP回复:

{"first":1860,"second":1100,"third":340}

JavaScript的:

// this calls the php script with the data we have collected from the geolocation lookup
function GEOajax(url) {
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = updatePage;
xmlHttp.send(null);
}

// this reads the response from the php script and updates the page with it's output
function updatePage() {
if (xmlHttp.readyState == 4 && xmlhttp.status==200) {
var response = JSON.parse(xmlhttp.responseText);
     document.getElementById("geo").innerHTML='' + response.first;
     document.getElementById("geo1").innerHTML='' + response.second;
     document.getElementById("geo2").innerHTML='' + response.third;     
}
}

HTML:

<div id="geo" ></div>   
<div id="geo1" ></div>  
<div id="geo2" ></div>

但是,如果我不解析JS中的文本,只是使用整个responseText,那么脚本就可以正常工作并在我的HTML中显示responseText。

JavaScript - 无解析:

// this reads the response from the php script and updates the page with it's output
function updatePage() {
if (xmlHttp.readyState == 4) {
var response1 = xmlHttp.responseText;
document.getElementById("geo").innerHTML = '' + response1;
}
}

如何解析PHP响应,以便在HTML中的不同区域显示不同的变量?

0 个答案:

没有答案