Обработка json в jquery
Здравствуйте. Нужно сделать взаимные селекты.
В итоге, после выполнения ajax запроса постом к php скрипту, возвращаю (print(json_encode()) ) json массив. Выглядет он примерно так:
[{"id":1,"title":"Легковая"},{"id":2,"title":"Грузовая"}]
Нужно обработать массив и запихнуть в dom шаблона. Гуглил, нащёл пример обработки json циклом each, но толком ничего не получилось в итоге сделать. Буду благодарен за помощь, спасибо |
Вы хотите получить готовый скрипт, это в раздел работа, а если хотите просто хотите помощи, тогда пишите что именно у вас не выходит и возможно кто-нибудь что-нибудь подскажет.
|
И Skipp, мне не нужен готовый скрипт!
У меня вопрос. Вот есть такая конструкция из сайта jquery.com:
$.getJSON("test.js", { name: "John", time: "2pm" }, function(json){
alert("JSON Data: " + json.users[3].name);
});
Мне непонятно , что собой представляет users[3] , откуда появился этот массив с индексом и массив ли это вообще ? |
Цитата:
Установи fitebug в лисе, вот тут добавь:
function(json){
console.log(json); // <----
и увидишь, что приходит и в каком формате. |
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. :) |
Skipp , micscr благодарю, буду пробывать, если будут вопросы отпишусь
|
Skipp, пожалуй возвращусь к сути вопроса:
Цитата:
Цитата:
$(result).each(function(i) {
alert(i.title);
});
Выдаёт undefined. Как правильно этот массив разобрать? |
можно побольше кода, а то так не понятно что такое result и что такое i
|
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":"Грузовое"}]
}
|
А такая конструкция что выдаст?
$("select[name=kind[]]").change(function() {
var kind_id = $(this).val();
url = "/admin/add";
$.post(
url,
"kind=" + kind_id,
function (result) {
alert(typeof result);
}
),"json";
});
|
| Часовой пояс GMT +3, время: 13:08. |