0

オートコンプリートリストのユーザー選択が成功した後、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.'); }
              });
    }
});
4

2 に答える 2

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.');
    }
});​
于 2012-04-29T18:39:34.420 に答える
1

返されるデータはon要素を持つ配列であるため、次のことを行う必要があります。

$("#txtClientPrice").val(data[0].custprice); 
$("#txtLastQty").val(data[0].lastqty);

もちろん、@gdoronが示唆するようにデータ型をすでに修正していると仮定します

于 2012-04-29T19:17:14.810 に答える