1

我有一个通过 javascript 接收下拉变量的 php 函数。变量通过函数处理,函数返回两个结果。我想在页面顶部的 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“二”合并到其中?

先感谢您!

4

2 回答 2

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
}

只要您的分隔符是没有出现在结果中的任何内容,它就可以正常工作。

于 2012-09-04T22:27:37.353 回答
1

最好的方法是拥有一个包含 div 1 和 2 的 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;
于 2012-09-04T22:30:21.890 回答