2017-01-03 6 views
2

私はいくつかのプロパティを持つjsonレスポンスを持っています。私はリストのための配列を作成しました。リストアイテムをクリックすると、いくつかの入力がアイテムIDで埋められます。jQueryオートコンプリート、選択メソッドに成功データを渡す

これを行うには、selectメソッドに完全なデータオブジェクトを渡すことを考えています。リストから項目をクリックすると、データオブジェクト内のidが検索され、見つかったら入力にすべて印刷します。 しかし、私は選択メソッドにfullObjデータを渡すことができませんでした。定義されていないエラーを返します。

$("#musteriId").autocomplete({ 
    source: function(request, response) { 
     $.ajax({ 
      url : '/musteri-bul', 
      dataType: "json", 
      data: { 
       name_startsWith: request.term, 
      }, 
      success: function(data) { 
       //console.log(data); 
       var arr = []; 
       var i = 0; 
       var fullObj = data; 
       $.each(data, function(index, value){ 
        console.log(index); 
        var obj = { 
         label: index 
        }; 
        arr[i] = obj; 
        i++; 
       }); 
       response(arr, fullObj); 
      } 
     }); 
    }, 
    minLength: 3, 
    select: function(event, ui) { 
     console.log(fullObj); 
    }, 
}); 

答えて

0

は、ここに私のコードです。私はちょうどobjにいくつかのプロパティを追加して渡します。

$("#musteriId").autocomplete({ 
    source: function(request, response) { 
     $.ajax({ 
      url : '/musteri-bul', 
      dataType: "json", 
      data: { 
       name_startsWith: request.term, 
      }, 
      success: function(data) { 

       var arr = []; 
       var i = 0; 
       var fullObj = data; 
       $.each(data, function(index, value){ 
        $.each(value, function(idx, v){ 
         var obj = { 
          label: idx, 
          value: v, 
          phone: 12313 
         }; 
         if(idx == "isim"){ 
          arr[i] = obj; 
          i++; 
         } 
        }); 
       }); 
       response(arr, fullObj); 
      } 
     }); 
    }, 
    minLength: 3, 
    select: function(event, ui) { 
     console.log(ui); 
    }, 
}); 
0

まず、ajax呼び出しを行い、その後、成功コールバックで、中に手のデータとautocompleteを起動します:私はそれを解決した

$.ajax({ 
    url : '/musteri-bul', 
    dataType: "json", 
    data: { 
     name_startsWith: request.term, 
    }, 
    success: function(data) { 
     //console.log(data); 
     var arr = []; 
     var i = 0; 
     var fullObj = data; 
     $.each(data, function(index, value){ 
      console.log(index); 
      var obj = { 
       label: index 
      }; 
      arr[i] = obj; 
      i++; 
     }); 

     $("#musteriId").autocomplete({ 
      source: arr, 
      minLength: 3, 
      select: function(event, ui) { 
       console.log(fullObj); 
      }, 
     }); 
    } 
}); 
関連する問題