.get jquery返回“array”字符串?

时间:2012-04-26 12:59:11

标签: jquery get

我正在使用.get从db

中获取单词列表
$.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;

问题是它只返回单词Array,而不是我要求的单词列表 可能是什么解决方案?

1 个答案:

答案 0 :(得分:1)

您正在构建阵列服务器端,并尝试将其传递回客户端。由于PHP没有隐含地知道你想要一个JavaScript对象,它会按照它认为的那样做,并打印出类型。

使用json_encode()从PHP返回JSON:

json_encode( $php_array );

您可以在以下示例中看到区别:

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

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

从您的$.get(),确保将响应类型声明为JSON(或者考虑使用$.getJSON()代替),然后您可以遍历其内容。