0

現在、ドロップダウンボックスが変更されたときにサイトの一部を更新するためにAJAXを使用していますが、関数で使用できるようにパラメーターを渡すのに問題があります。

HTMLは次のとおりです。

<script type='text/javascript' src='ajax.js'></script> //Where to find function

<div id="combobox" style="width: 150px; height: 300px; overflow-y: scroll">
  <select onchange="MakeRequest(test); location = this.options[this.selectedIndex].value;"> 
    <option>Races</option>

    <?php ComboBox() ?>
  </select>
   .
   .

外部ajax.jsファイルのAJAX関数は次のとおりです。

function MakeRequest(test) {
  var linkInfo = "teleport.php?call=" + test;
  var xmlHttp = getXMLHttp();

  xmlHttp.onreadystatechange = function() {
    if (xmlHttp.readyState == 4) {
      HandleResponse(xmlHttp.responseText);
    }
  }

  xmlHttp.open("GET", linkInfo, true);
  xmlHttp.send(null);
}

これをどのように機能させるのですか?

4

3 に答える 3

1
location=this.options[this.selectedIndex].value

これにより、ページが別の場所に変更されます。それはAJAXではありません。削除してください。

代わりに、あなたが置いたものthis.options[this.selectedIndex].value(またはちょうどthis.value-同じもの)を入れてくださいtest

于 2012-05-30T17:50:38.537 に答える
0

Ajaxの性質は非同期です。最初にAJAXリクエストをサーバーに送信し、その応答の結果として、クライアント側のユーザーを別のページにリダイレクトしたいと思います。

コードで何が起こるかというと、まずMakeRequest()関数が呼び出されますが、すぐに返されます(ajaxは非同期であるため)。したがって、onchange属性の次の部分が呼び出され、ユーザーは別のページにリダイレクトされます。

テストするには、ajax呼び出しを同期させます。ここを参照してください。

于 2012-05-31T05:22:32.833 に答える
0
<select onchange="MakeRequest(this.value); " />
于 2012-05-31T05:30:16.833 に答える