2014-03-24 60 views
0

我想在我的驗證代碼中填充一列中不同值的數組,我的邏輯是關注某些元素,我會發送ajax請求並使用JSON響應填充數組。但我仍然是JQuery的新手,看起來我無法正確理解,所以如果任何人都可以提供幫助的話。用json響應填充數組

$('input#search').on("focus", function(){ 

     $.ajax({ 
       type:"get", 
       dataType: "json", 
       url:"ajax_php/get_distinct_cities.php", 
        success:function(data){ 
         $.each(data.city, function(i, itemData) { 
          cities[i] = itemData; 
         }); 
        } 
       }); 

    }); 

PHP:

<?php 

    mysql_connect("localhost","root",""); 
    mysql_select_db("pickante"); 

    $sql = "SELECT DISTINCT city FROM uc_items"; 

    $result = mysql_query($sql); 

    $cities = array(); 

    while($row = mysql_fetch_assoc($result)) 
    { 
     $cities[] = $row; 
    } 

    echo json_encode($cities); 
    ?> 

JSON打印:

[{"city":"Belgrade"},{"city":"Novi Sad"}] 
+2

'data'是一個數組,它沒有'.city'屬性。 '.each(data,function(i,itemData){cities [i] = itemData.city;});'。 –

+0

新人的錯誤,但我是新手。 Thx隊友! – user3275701

回答

1

只是循環數組和推動

for (var i = 0; i < data.length; i++) { 
    cities.push(data[i].city); 
} 
0

正如timeJV說只是循環數組,並添加城市對你來說,這是一個例子使用$.each,但以前的答案將完成這項工作。

$.each(data, function(i, itemData) { 
        cities.push(itemData.city); 
      });