Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.01.2011, 10:48
Интересующийся
Отправить личное сообщение для vitja Посмотреть профиль Найти все сообщения от vitja
 
Регистрация: 27.03.2010
Сообщений: 17

Обработка json в jquery
Здравствуйте. Нужно сделать взаимные селекты.
В итоге, после выполнения ajax запроса постом к php скрипту, возвращаю (print(json_encode()) ) json массив.
Выглядет он примерно так:
[{"id":1,"title":"Легковая"},{"id":2,"title":"Грузовая"}]

Нужно обработать массив и запихнуть в dom шаблона. Гуглил, нащёл пример обработки json циклом each, но толком ничего не получилось в итоге сделать. Буду благодарен за помощь, спасибо

Последний раз редактировалось vitja, 25.01.2011 в 10:54.
Ответить с цитированием
  #2 (permalink)  
Старый 25.01.2011, 11:09
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Вы хотите получить готовый скрипт, это в раздел работа, а если хотите просто хотите помощи, тогда пишите что именно у вас не выходит и возможно кто-нибудь что-нибудь подскажет.
__________________
.
Ответить с цитированием
  #3 (permalink)  
Старый 25.01.2011, 18:34
Интересующийся
Отправить личное сообщение для vitja Посмотреть профиль Найти все сообщения от vitja
 
Регистрация: 27.03.2010
Сообщений: 17

И Skipp, мне не нужен готовый скрипт!

У меня вопрос. Вот есть такая конструкция из сайта jquery.com:
$.getJSON("test.js", { name: "John", time: "2pm" }, function(json){
    alert("JSON Data: " + json.users[3].name);
    });


Мне непонятно , что собой представляет users[3] , откуда появился этот массив с индексом и массив ли это вообще ?

Последний раз редактировалось vitja, 25.01.2011 в 21:45.
Ответить с цитированием
  #4 (permalink)  
Старый 26.01.2011, 08:53
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

Цитата:
Мне непонятно , что собой представляет users[3] , откуда появился этот массив с индексом и массив ли это вообще ?
ну он может появиться очевидно от одного отправщика - сервера.
Установи fitebug в лисе, вот тут добавь:
function(json){
  console.log(json); // <----

и увидишь, что приходит и в каком формате.
Ответить с цитированием
  #5 (permalink)  
Старый 26.01.2011, 09:10
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

vitja,
Так бы сразу и писал, что тебе непонятно.
Глянь на первую строку
Цитата:
Здравствуйте. Нужно сделать взаимные селекты.
Такой текст обычно пишут те кто хочет что-то на халяву, поэтому такая и реакция

$.getJSON("test.js", { name: "John", time: "2pm" }, function(json){
    alert("JSON Data: " + json.users[3].name);
    });

В данном случаи после ответа сервера вызывается функция function(json), в которую передаётся аргумент(json) хранящий в себе ответ сервера преобразованный в json тип(объект), а далее вызывается алерт в который передаётся объект json со свойством users который тоже является объектом(возможно Array) у которого выбирается ещё один объект с индексом 3 у которого есть свойство name.
__________________
.
Ответить с цитированием
  #6 (permalink)  
Старый 26.01.2011, 09:29
Интересующийся
Отправить личное сообщение для vitja Посмотреть профиль Найти все сообщения от vitja
 
Регистрация: 27.03.2010
Сообщений: 17

Skipp , micscr благодарю, буду пробывать, если будут вопросы отпишусь
Ответить с цитированием
  #7 (permalink)  
Старый 27.01.2011, 14:15
Интересующийся
Отправить личное сообщение для vitja Посмотреть профиль Найти все сообщения от vitja
 
Регистрация: 27.03.2010
Сообщений: 17

Skipp, пожалуй возвращусь к сути вопроса:
Цитата:
нужно обработать массив и запихнуть в dom шаблона
Цитата:
если просто хотите помощи, тогда пишите что именно у вас не выходит
А не выходит у меня именно вот что:
$(result).each(function(i) {
               	  alert(i.title);
                   });

Выдаёт undefined. Как правильно этот массив разобрать?

Последний раз редактировалось vitja, 27.01.2011 в 14:18.
Ответить с цитированием
  #8 (permalink)  
Старый 27.01.2011, 15:02
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

можно побольше кода, а то так не понятно что такое result и что такое i
__________________
.
Ответить с цитированием
  #9 (permalink)  
Старый 27.01.2011, 16:30
Интересующийся
Отправить личное сообщение для vitja Посмотреть профиль Найти все сообщения от vitja
 
Регистрация: 27.03.2010
Сообщений: 17

Skipp, примерно вот так получается ..
$("select[name=kind[]]").change(function() {
		
		var kind_id = $(this).val();
		url = "/admin/add";
		$.post(
	            url,
	            "kind=" + kind_id,
	               function (result) {
	               // $('body').html(result); // возвращает [{"id":1,"title":"Легковое"}, {"id":2,"title":"Грузовое"}]                
	                  $(result).each(function() {
               	  alert($(result).id);
                       });
	                  
	            }
		 ),"json";

		 

		});

PHP
if($_POST) { 
    $types =  $this -> prop_type($_POST['kind']); 
    $regions = array();
    foreach ($types as $id => $title) {
        $regions[] = array('id'=>$id, 'title'=>$title);
     
    }
     print(json_encode($regions)); // [{"id":1,"title":"Легковое"}, {"id":2,"title":"Грузовое"}]   
         }
Ответить с цитированием
  #10 (permalink)  
Старый 27.01.2011, 16:54
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

А такая конструкция что выдаст?
$("select[name=kind[]]").change(function() {
		var kind_id = $(this).val();
		url = "/admin/add";
		$.post(
	            url,
	            "kind=" + kind_id,
	               function (result) {
	                  alert(typeof result);
	            }
		 ),"json";
});
__________________
.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамически загружаемая jQuery и jQuery-функции в одном файле 67bytes Общие вопросы Javascript 6 06.03.2013 09:01
jQuery. Обработка ошибок и JSON. mma_mma jQuery 3 19.07.2010 12:10
не работает JSON в JQuery 1.4.1 mcpro jQuery 7 22.03.2010 17:56
Jquery, Dynatree и JSON antirek jQuery 6 01.09.2009 15:00
Jquery и json ellesse jQuery 0 04.03.2009 23:26