Разбор ответа в формате 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, время: 04:41. |