Помогите распарсить 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, время: 07:30. |