Помогите распарсить JSON
Приветствую всех!
В js недавно, поэтому прошу помощи. Пишу регистрацию на сайте, и через ajax делаю выбор страны,региона,города. Есть вот такой вот скрипт на стороне клиента: function loadRegion(select) { $.post("/ajax/reg", {selectId: select.value, selectType: 'region'}, function(data){ var json_regions = JSON.decode(data.data); alert(jon_regions); }, 'json'); } Функция loadRegion() вызывается при выборе select: <select name='country' id='sel12' onchange="loadRegion(this)"> <option valye='null'>Выберите страну</option> <option valye="1">Россия</option> <option valye="2">Америка</option> </select> Сервер возвращает мне список всех регионов принадлежащим выбранной стране в формате JSON: { "status":true, "message":null, "data":[ { "id":"4312", "name":"\u041c\u043e\u0441\u043a\u0432\u0430 \u0438 \u041c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u0430\u044f \u043e\u0431\u043b." }, { "id":"4925", "name":"\u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433 \u0438 \u043e\u0431\u043b\u0430\u0441\u0442\u044c" } ] } В firebug пишет: JSON.decode is not a function Подскажите пожалуйста как мне добраться до полей name и id? |
Что-такое JSON.decode? Может JSON.parse?
Тебе аргументом уже объект отдают, если ты передал последним параметром $.post'а строку 'json', ничего не нужно уже парсить. |
Цитата:
Цитата:
Цитата:
P.S Гуглил по этому поводу очень много, но т.к только начал учить js не понимаю половины примеров в интернете. Прошу помочь мне :) |
data.name?
|
Цитата:
У меня же там несколько элементов. Вся задача состоит в том чтобы все элементы, которые мне возвращает сервер вывести в следующий select. Вот html двух селектов: <td class="form-reg-table-td step-1"> <div> <label>Страна</label> <select name='country' id='sel12' onchange="loadRegion(this)"> <option valye='null'>Выберите страну</option> <?foreach($countrys as $country):?> <option value="<?=$country->id?>"><?=$country->name?></option> <?endforeach?> </select> </div> </td> <td class="form-reg-table-td step-1"> <div> <label>Область</label> <select class="chzn-select" name='region'> </select> </div> </td> Мне нужно чтоб при выборе страны в select с id='region' подгружался список регионов, принадлежащих выбранной стране. Сервер у меня возвращает 3 параметра: status - статус выполнения запроса (если допустим была запрошена не существующая запись то вернет false) message - сообщение о ошибке (допустим запрашиваемой записи нет, и сервер вернет еще сообщение "Данной записи не существует") data - данные, если они нужны в ответ. * Это у меня организована так архитектура приложения. На все запросы ajax возвращается 3 параметра. Так вот, я не могу понять как мне перебрать этот список элементов которые находятся в data. Если бы это было бы php, то выглядело так бы: $array_json = array ( 'status' => true, 'message' => null, 'data' => array ( '1' => array ( 'name' => 'Московская область', 'id' => '123' ), '2' => array ( 'name' => 'Ростовская область', 'id' => '321' ) ) ); И разобрал бы я его так: foreach ($array_json['data'] as $json_elem) { echo "<option valye='" . $json_elem['id'] . "'>" . $json_elem['name'] . "</option>" } P.S Просто с JSON форматом работаю первый раз.. |
Переименуй data в response, если уважаешь логику.
И тогда response.data[1].name, response.data[2].name и тд. |
То что нужно! Благодарю :victory:
|
Часовой пояс GMT +3, время: 02:46. |