我有一个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中的不同区域显示不同的变量?