1

javascript を介してドロップダウン変数を受け取る 1 つの php 関数があります。変数は関数によって処理され、関数は 2 つの結果を返します。結果の 1 つをページ上部の div 'one' に表示し、もう 1 つの結果を同じページの下部にある 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" をどのように組み込むのですか?

前もって感謝します!

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 を含む 1 つの 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 に答える