Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.01.2010, 15:25
Интересующийся
Отправить личное сообщение для Rush Посмотреть профиль Найти все сообщения от Rush
 
Регистрация: 16.10.2008
Сообщений: 19

Разбор ответа в формате 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.
Ответить с цитированием
  #2 (permalink)  
Старый 29.01.2010, 15:28
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

eval('(' + response + ')').data[0].address
В последних версиях браузеров есть объект JSON с методами parse и stringify.
Ответить с цитированием
  #3 (permalink)  
Старый 29.01.2010, 15:33
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

А еще лучше взять вот эту библиотечку, тогда во всех браузерах будет объект JSON.
Ответить с цитированием
  #4 (permalink)  
Старый 29.01.2010, 15:40
Интересующийся
Отправить личное сообщение для Rush Посмотреть профиль Найти все сообщения от Rush
 
Регистрация: 16.10.2008
Сообщений: 19

это мне необходимо делать например так?

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;

	      }
Ответить с цитированием
  #5 (permalink)  
Старый 29.01.2010, 15:46
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

В Ext'е есть функции для работы с JSON.
Ext.decode(action.response.responseText).data[0].address

Хотя вполне возможно, что распарсенный ответ где-нибудь в action лежит.
Ответить с цитированием
  #6 (permalink)  
Старый 29.01.2010, 16:17
Интересующийся
Отправить личное сообщение для Rush Посмотреть профиль Найти все сообщения от Rush
 
Регистрация: 16.10.2008
Сообщений: 19

не работает может сожмите чем помочь еще, а то у меня уже сил нет целую неделю бьюсь и не как
Ответить с цитированием
  #7 (permalink)  
Старый 29.01.2010, 16:19
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Rush
не работает
На такое обычно ответ: "Работает".

Что не работает? Где не работает? Какую ошибку выдаёт? Тут не телепаты.
Ответить с цитированием
  #8 (permalink)  
Старый 29.01.2010, 16:23
Интересующийся
Отправить личное сообщение для Rush Посмотреть профиль Найти все сообщения от Rush
 
Регистрация: 16.10.2008
Сообщений: 19

Делаю так
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);
Ответить с цитированием
  #9 (permalink)  
Старый 29.01.2010, 16:29
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Смотрите, что у Вас передается в action.
Ответить с цитированием
  #10 (permalink)  
Старый 29.01.2010, 16:32
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

action в success передаётся вторым параметром. Первым параметром будет объект формы. И у action есть свойство result, которое
Цитата:
The decoded response object containing a boolean success property and other, action-specific properties.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновление страницы после получения ответа от сервера potrashitel AJAX и COMET 9 24.02.2015 10:04
Что выбрать XML или JSON для передачи Ajax - ом из PHP в JS Gozar Общие вопросы Javascript 20 16.08.2009 23:36
treeview и JSON PANKOFF jQuery 2 21.05.2009 14:46
Ajax - JSON - не распознает пришедший ответ Майский Кот jQuery 1 14.05.2009 00:40
Json и PHP spar AJAX и COMET 7 30.10.2008 20:11