下面的代碼是使用JQuery UI創建的自動完成輸入的一部分。 但我在這裏的問題只與JQuery-AJAX部分有關。JQuery.ajax中的奇怪行爲
change: function(event, ui){
$.ajax({
type: "POST",
url: "includes/c_t_v_choices.php",
data: { filter: ui.item.value },
//dataType: "JSON",
}).done(function(msg) {
c_t_v_choices = msg;
alert("Data Saved: " + c_t_v_choices);
$("#c_t_v").autocomplete("option", "source", c_t_v_choices);
});
在c_t_v.php文件的最後一行是:
echo json_encode($return_arr);
的代碼是目前的方式,我看到了警報,由php文件發送有效數據。一個例子如下所示:
Data Saved: [{"label", "value"}, {"label", "value"}...]
然而,當我使行:
dataType: "JSON",
我看到:
Data Saved: [object: Object], [object: Object]
爲什麼這個奇怪的行爲呢?
在一個側面說明,任何知道爲什麼$(「#c_t_v」)自動完成正在接受我在下面的代碼提供(這是代碼的一部分上方)源:
$("#c_t_v").autocomplete("option", "source", c_t_v_choices);
因爲它將JSON轉換爲JSON,而JSON是對象。 –
改爲使用console.log - 它會告訴你孩子與警報相比。 – h2ooooooo
'alert()'接受一個字符串,它不像PHP中的'var_dump()'。 – Orbling