下面的代码是使用 JQuery UI 创建的自动完成输入的一部分。但我的问题仅与 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").autocomplete 接受我在下面的代码中提供的源代码(这是上面代码的一部分):
$("#c_t_v").autocomplete("option", "source", c_t_v_choices);