将php结果发送给两个独立的div

时间:2012-09-04 22:23:20

标签: php javascript

我有一个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”加入其中?

提前谢谢!

2 个答案:

答案 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;