Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.08.2011, 15:14
Аспирант
Отправить личное сообщение для Allan Stark Посмотреть профиль Найти все сообщения от Allan Stark
 
Регистрация: 24.04.2010
Сообщений: 87

Проблема с декодированием JSON от store на стороне сервера
ExtJS 4.0.2a, PHP 5.3.6, LAMP

При использовании фильтрации стореджа на стороне сервера (метод filter()) сценарий отсылает в поле JSON кодированные данные фильтрации.

Выглядят они примерно как:

[{"property":"code_1","value":1},{"property":"code_ 2","value":7},{"property":"code_3","value":4}]

Вопрос. Как разобрать такое на стороне PHP ?
Не получается достучаться к свойствам value ни при декодировании в объект, ни в массив.
В примерах к json_decode используется либо совсем тривиальный случай, либо когда в JSON массив находится внутри уже в виде значения...
Ответить с цитированием
  #2 (permalink)  
Старый 23.08.2011, 15:15
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

var_export(json_decode(…))
Что выводит?
Ответить с цитированием
  #3 (permalink)  
Старый 23.08.2011, 15:40
Аспирант
Отправить личное сообщение для Allan Stark Посмотреть профиль Найти все сообщения от Allan Stark
 
Регистрация: 24.04.2010
Сообщений: 87

var_export(json_decode($_GET["filter"], true));

Выводит:

array (
0 =>
array (
'property' => 'code_1',
'value' => 1,
),
1 =>
array (
'property' => 'code_2',
'value' => 7,
),
2 =>
array (
'property' => 'code_3',
'value' => 4,
),
)

Кстати обнаружил не то баг, не то фичу удаленной фильтрации в ExtJS 4:
http://www.sencha.com/forum/showthre...765#post639765

Вкратце: если к созданному стореджу несколько раз применять вызов его метода filter(), то старый фильтр не затирается, а "добавляется" к новому. Метод clearFilter() лечит проблему, но порождает лишний нефильтрованный запрос, что вкупе с большим возможным количеством нефильтрованных данных может ввести в ступор приложение...
Ответить с цитированием
  #4 (permalink)  
Старый 23.08.2011, 15:45
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

$data = json_decode($_GET["filter"], true);
echo $data[0]['value']
Должно работать.
Ответить с цитированием
  #5 (permalink)  
Старый 23.08.2011, 16:56
Аспирант
Отправить личное сообщение для Allan Stark Посмотреть профиль Найти все сообщения от Allan Stark
 
Регистрация: 24.04.2010
Сообщений: 87

Работает, пасиба.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ajax $.post вместо json проблема данные не приходят Sadist_dead AJAX и COMET 2 12.07.2012 17:59
проблема парсинга json с помощью jquery frolvict jQuery 15 16.09.2011 22:35
ExtJs 4 проблема с tree или с store mavovan ExtJS 1 25.03.2011 15:14
проблема с JSON объектом в AJAX запросе jura4x01 jQuery 6 01.12.2010 15:40
Очень нужно.. Отправка HTML куски в JSON от сервера используя Ajax bivnikus jQuery 8 26.10.2010 23:54