我有一个php函数通过javascript接收下拉变量。变量通过函数处理,函数返回两个结果。我想在页面顶部显示div“one”中的一个结果,而另一个结果显示在同一页面底部的div“two”中。我怎么能这样做?
我正在使用此jScript函数将变量从下拉列表传递到php页面
function getRunners() {
var awayRunner = document.getElementById('awayRunner').value;
var homeRunner = document.getElementById('homeRunner').value;
if(window.XMLHttpRequest) {
xmlhttp13 = new XMLHttpRequest();
}
else {
xmlhttp13 = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp13.onreadystatechange = function() {
if(xmlhttp13.readyState == 4 && xmlhttp13.status == 200) {
document.getElementById("one").innerHTML = xmlhttp13.responseText;
}
}
xmlhttp13.open("GET", "/Modules/process.php?awayRunner=" + awayRunner + "&homeRunner=" + homeRunner, true);
xmlhttp13.send();
}
在php页面中,我有类似的东西
function getResults($homeRunner,$awayRunner){
process info...
echo $homeResult;
echo $awayResult;
}
getResults($homeRunner,$awayRunner);
?>
我理解上面的jScript代码只返回div“one”。我如何将div“two”加入其中?
提前谢谢!
答案 0 :(得分:2)
分解回应。就个人而言,我会使用JSON,但你可以使用更原始的东西。
function getResults($homeRunner,$awayRunner) {
// do stuff
echo $homeResult."---SEPARATOR---".$awayResult;
}
然后在你的JavaScript中:
xmlhttp13.onreadystatechange = function() {
// if readyState and status correct
var parts = xmlhttp13.responseText.split("---SEPARATOR---");
// now put parts[0] in one div and parts[1] in the other
}
只要您的分隔符是结果中没有出现的任何内容,它就可以正常工作。
答案 1 :(得分:1)
这样做的最好方法是让一个包含div和div的div,然后让你的php页面返回:
<div id="1">
Div 1 content
</div>
<div id="2">
Div 2 content
</div>
你的大div应该是这样的:
<div id="encompassing">
<div id="1">
Div 1
</div id="2">
Div 2
</div>
</div>
而不是设置div 1的innerHTML值,而是将其设置为div包含。
document.getElementById("encompassing").innerHTML = xmlhttp13.responseText;