1

自動提案を取得するために、javascript と php を使用しています。

    <div>
        <div>
            University Name:<input type="text" size="20" name="uni" value="" id="uniString" onkeyup="lookup(this.value);" onblur="fill();">
        </div>

        <div class="suggestionsBox" id="suggestions" style="display: none;">
            <div class="suggestionList" id="autoSuggestionsList">
                &nbsp;
            </div>
        </div>
    </div>

ユーザーが名前を入力すると、結果が表示され、fill 関数を使用して値を取得します。すべて正常に動作します。しかし、''thisValue'' (選択された大学) を使用してドロップダウン リストを印刷する方法はありますか? 選択した大学のコースを印刷したいので、次のコードを書きました。

function lookup(uniString) {
    if (uniString.length == 0) {
        // Make the suggestions box invisible
        $('#suggestions').hide();
    } else {
        $.post("autosuggestions.php", {
            universityString: "" + uniString + ""
        }, function(data) {
            if (data.length > 0) {
                $('#suggestions').show();
                $('#autoSuggestionsList').html(data);
            }
        });
    }
} // lookup

function fill(thisValue) {
    if (thisValue) {
        $('#uniString').val(thisValue);
        var strURL = "findCourse.php?uniString=" + thisValue;
        var req = getXMLHTTP();
        if (req) {
            req.onreadystatechange = function() {
                if (req.readyState == 4) {
                    // only if "OK"
                    if (req.status == 200) {
                        document.getElementById('coursediv').innerHTML = req.responseText;
                    } else {
                        alert("There was a problem while using XMLHTTP:\n" + req.statusText);
                    }
                }
            }
            req.open("GET", strURL, true);
            req.send(null);
        }
    } else {
        setTimeout("$('#suggestions').hide();", 200);
    }
}
findCourse.php: $uni = $_POST['uniString'];
$query = mysql_query("SELECT .... FROM .... WHERE university.uni_name='$uniString' AND .......");
if ($query) {
    ....
}`enter code here`

残念ながら、うまくいきません。「document.write( )」でテストしました.. thisValue が出力するものと、大学名が出力されます (これが必要です)。しかし、値を php ファイル (getCourse.php) に渡すと、結果の値は null になります。

誰でも私を助けてもらえますか?私の質問はばかげていると確信しており、申し訳ありません。私はJavaScriptがあまり得意ではありません。

4

3 に答える 3

3
req.open("GET", strURL, true);

$uni = $_POST['uniString'];

ajaxでgetメソッドを使用する場合は、PHPで$_GETを使用する必要があります。

于 2013-03-19T16:56:20.807 に答える
0

jQuery .blur()を使用する

$('#uniString').blur(function() {
    if ( $('#uniString').val() =! '' )
    {
        // DO POST
    }
});

さらにヘルプが必要な場合は、 .blur()を調べてください。

于 2013-03-19T17:29:38.153 に答える
0

次のコードでは、「universityString」を「uniString」に置き換える必要があります。

$.post("autosuggestions.php", {universityString: ""+uniString+""}, function(data){
  if(data.length >0) {
    $('#suggestions').show();
    $('#autoSuggestionsList').html(data);
  }
});
于 2013-03-19T16:58:09.090 に答える