0

.get を使用して、データベースから単語のリストを取得しています

$.get( "script/get_words.php", function( data ) {
    alert(data);
    words = data;
    $.each( words, function( k, v ) {
        availableTags[k] = v;
    })
});

$( "#tags" ).autocomplete({
    source: availableTags
});

これは、私が呼び出している get_words.php リクエストの php です。

$sql = "select answer from questions";
$words =  array();
$result = run_query( $sql );
$i = 0;

// echo "1 $course_is is course_id and  $class_id is class_id <br>" ;   
while ( $row = mysql_fetch_assoc( $result ) ) {
    $words[$i] = $row['answer'];
    //echo $words[$i];
    $i++;   
}

return $words;

問題は、単語配列のみを返し、私が求めた単語のリストではありません。解決策は何ですか?

4

1 に答える 1

1

サーバー側でアレイを構築し、それをクライアントに戻そうとしています。PHPは、JavaScriptのオブジェクトが必要であることを暗黙的に認識していないため、必要と思われる処理を実行し、型を出力します。

を使用してPHPからJSONを返しますjson_encode()

json_encode( $php_array );

次の例で違いを確認できます。

$array = array( 'Foo' => 'bar' );

echo $array; // Array
echo json_encode( $array ); // {"Foo":"bar"}

から、$.get()必ず応答タイプをJSONとして宣言して(または$.getJSON()代わりに使用することを検討してください)、その内容を反復処理できます。

于 2012-04-26T13:02:30.127 に答える