Разбор ответа в формате Json
Есть PHP скрипт возвращающий json:
$schet = $_GET['schet']; $link = mysql_connect("localhost","root",""); mysql_select_db("extjs"); $rs = mysql_query("SELECT nstreet as adress, no_lic as fio FROM misto where nnj = '$schet';"); $arr = array(); while($obj = mysql_fetch_object($rs)) { $arr[] = $obj; } if(mysql_num_rows($rs)>0) { echo "{success: true, data:".json_encode($arr)."}"; } else { echo "{success: false}"; } mysql_close($link); Ответ Возвращается в браузер клиента в таком виде {success: true, data:[{"adress":"9","fio":"656232"}]} Скажите как мне в скрипте на клиентской стороне получить этот ответ и взять из него например adress. |
eval('(' + response + ')').data[0].addressВ последних версиях браузеров есть объект JSON с методами parse и stringify. |
А еще лучше взять вот эту библиотечку, тогда во всех браузерах будет объект JSON.
|
это мне необходимо делать например так?
success: function(action) { var contact = action.response.responseText; obj = Ext.util.JSON.decode(action.response.responseText); var a = eval('(' + contact + ')').data[0].address; // или var a = eval('(' + obj + ')').data[0].address; } |
В Ext'е есть функции для работы с JSON.
Ext.decode(action.response.responseText).data[0].address Хотя вполне возможно, что распарсенный ответ где-нибудь в action лежит. |
не работает может сожмите чем помочь еще, а то у меня уже сил нет целую неделю бьюсь и не как
|
Цитата:
Что не работает? Где не работает? Какую ошибку выдаёт? Тут не телепаты. |
Делаю так
tab2.getForm().submit({ method: 'GET', waitMsg: 'Подождите идет отправка данных...', waitTitle: 'Соединение с сервером...', url:'test.php?schet'+ tab2.getForm().findField('schet').getValue(), success: function(action) { tab2.getForm().findField('adress').setValue(Ext.decode(action.response.responseText).data[0].adress); tab2.getForm().findField('fio').setValue('fio'); }, failure:function() { Ext.Msg.alert('Аутентификация пользователя','Вы ввели неправельный логин или пароль!.'); tab2.getForm().reset(); } }); ответ action.response is undefined в строке tab2.getForm().findField('adress').setValue(Ext.de code(action.response.responseText).data[0].adress); |
Смотрите, что у Вас передается в action.
|
action в success передаётся вторым параметром. Первым параметром будет объект формы. И у action есть свойство result, которое
Цитата:
|
Часовой пояс GMT +3, время: 16:08. |