自动完成列表用户选择成功后,我进行Ajax调用以填写一些值。我现在已经丢失了图,我想利用返回的json值。
有人可以向我解释我应该如何处理返回值和更新文本框。感谢。
$("#txtProductName").autocomplete({
source: "_ajprodlist.php",
minLength: 2,
select: function(event, ui) {
$('#txtProductId').val(ui.item.id);
var custid = $('#txtClientId').val();
var postData = "prodid="+(ui.item.id)+"&custid="+custid;
$.ajax({ type: "GET",
url: "_ajcustprice.php",
data: postData,
dataType: 'text',
success : function(data) {
// alert(data); returns values Ok
// [{"custid":"12","custprice":"500","lastqty":"20"}]
$("#txtClientPrice").val(data.custprice); // **** not right
$("#txtLastQty").val(data.lastqty); // **** is it !!!
},
complete : function() { alert('Complete: Do something.'); },
error : function() {alert('Error: Do something.'); }
});
}
});
答案 0 :(得分:2)
我想利用返回的json值。
那你为什么期待text
? (dataType: 'text'
代替json
)
固定代码:
$.ajax({
type: "GET",
url: "_ajcustprice.php",
data: postData,
dataType: 'json', // <======= instead of 'text'
success: function(data) {
$("#txtClientPrice").val(data.custprice);
$("#txtLastQty").val(data.lastqty);
},
complete: function() {
alert('Complete: Do something.');
},
error: function() {
alert('Error: Do something.');
}
});
答案 1 :(得分:1)
返回的数据是一个包含on元素的数组,因此您需要执行以下操作:
$("#txtClientPrice").val(data[0].custprice);
$("#txtLastQty").val(data[0].lastqty);
当然假设您已经更正了@gdoron建议的数据类型