25.01.2011, 10:48
|
Интересующийся
|
|
Регистрация: 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.
|
|
25.01.2011, 11:09
|
|
.
|
|
Регистрация: 30.03.2010
Сообщений: 1,813
|
|
Вы хотите получить готовый скрипт, это в раздел работа, а если хотите просто хотите помощи, тогда пишите что именно у вас не выходит и возможно кто-нибудь что-нибудь подскажет.
__________________
.
|
|
25.01.2011, 18:34
|
Интересующийся
|
|
Регистрация: 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.
|
|
26.01.2011, 08:53
|
|
Профессор
|
|
Регистрация: 10.09.2009
Сообщений: 1,578
|
|
Цитата:
|
Мне непонятно , что собой представляет users[3] , откуда появился этот массив с индексом и массив ли это вообще ?
|
ну он может появиться очевидно от одного отправщика - сервера.
Установи fitebug в лисе, вот тут добавь:
function(json){
console.log(json); // <----
и увидишь, что приходит и в каком формате.
|
|
26.01.2011, 09:10
|
|
.
|
|
Регистрация: 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.
__________________
.
|
|
26.01.2011, 09:29
|
Интересующийся
|
|
Регистрация: 27.03.2010
Сообщений: 17
|
|
Skipp , micscr благодарю, буду пробывать, если будут вопросы отпишусь
|
|
27.01.2011, 14:15
|
Интересующийся
|
|
Регистрация: 27.03.2010
Сообщений: 17
|
|
Skipp, пожалуй возвращусь к сути вопроса:
Цитата:
|
нужно обработать массив и запихнуть в dom шаблона
|
Цитата:
|
если просто хотите помощи, тогда пишите что именно у вас не выходит
|
А не выходит у меня именно вот что:
$(result).each(function(i) {
alert(i.title);
});
Выдаёт undefined. Как правильно этот массив разобрать?
Последний раз редактировалось vitja, 27.01.2011 в 14:18.
|
|
27.01.2011, 15:02
|
|
.
|
|
Регистрация: 30.03.2010
Сообщений: 1,813
|
|
можно побольше кода, а то так не понятно что такое result и что такое i
__________________
.
|
|
27.01.2011, 16:30
|
Интересующийся
|
|
Регистрация: 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":"Грузовое"}]
}
|
|
27.01.2011, 16:54
|
|
.
|
|
Регистрация: 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";
});
__________________
.
|
|
|
|