2013-02-18 3 views
0

Я создал функцию jQuery, чтобы вытащить имя района и имя для формы, которую я создал.Ajax Json Данные в jQuery

Пользователь нажимает на поиск по почтовому индексу, и он заполняет поле почтовым индексом. Однако, когда я перехожу к заполнению поля region_id, он, похоже, не загружает его. Я могу получить имя органа управления, нет проблем, но District_id ничего!

Моего JQuery код выглядит следующим образом:

$('.search-district').click(function() { 

    var postcode = $(".postcode").val(); 

    var post_url = "/core/get-district-data/" + postcode; 

    $.ajax({ 
     type : "POST", 
     url : post_url, 
     success: function(districts) 
     { 
      $.each(districts, function(district_id,la_name) 
      { 
       $('.postcode').val(la_name); 
       $('#district_id').val(district_id); 
      }) 
     } 
    }) 
}); 

Пример JSon данные выглядят следующим образом:

{"district_id":2581,"la_name":"Hartlepool Borough Council"} 

Как заполнить поле идентификатора района с правильным районом ID? В настоящее время он заполняет его «1»? Когда это должно быть 2581?

EDIT: Я также могу изменить данные jSon на моем PHP, если это необходимо. Чтобы удалить «district_id» и «la_name», если необходимо.

Заранее спасибо.

+0

почему вы 'each'? это единственный объект (а не массив) –

+0

Я думаю, это мой вопрос, нужен ли мне каждый. и т.д? – StuBlackett

+0

Почему вы используете запрос 'POST', если нет тела? – Engineer

ответ

1

$.each с функцией обратного вызова передает индекс в качестве первого параметра.

То, что вы должны делать это:

$.each(districts, function(district_id, district) 
{ 
    $('.postcode').val(district.la_name); 
    $('#district_id').val(district.district_id); 
}) 

Однако, если это только один объект, возвращаемый только доступ к свойствам непосредственно:

$('.postcode').val(districts.la_name); 
$('#district_id').val(districts.district_id); 
0

Почему вы each? это один объект (не массив) -

 $.ajax({ 
       type : "POST", 
       url  : post_url, 
       success: function(districts) 
       { 
         $('.postcode').val(districts.la_name); 
      $('#district_id').val(districts.district_id); 

       } 
   }) 

уведомление.

вы также можете использовать каждый в своем образце.

, но это будет единственная итерация each. (это все еще нормально).

Кроме того,

пожалуйста, добавьте: datatype:"json"