2012-04-26 121 views
0

我用不用彷徨从DB.get jquery返回“数组”字符串?

$.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请求我打电话

$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; 

它返回仅单词的问题PHP数组,而不是我要求的文字列表 可能的解决方案是什么?

回答

1

您正在构建一个数组服务器端,并试图将其传递回客户端。由于PHP并没有隐式知道你想要一个JavaScript对象,所以它完成了它认为应该做的事,并打印出了类型。

从PHP使用 json_encode()

返回JSON:

json_encode($php_array); 

你可以看到在下面的例子中的区别:

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

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

从你$.get(),一定要声明的反应类型为JSON (或者考虑使用$.getJSON()代替),然后您可以遍历其内容。

+0

我得到单词thx,现在检查其他东西 – mfadel 2012-04-26 13:04:03