Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Массив в ajax

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
KApriS
Отправлено: 22 Января, 2013 - 14:38:21
Post Id


Частый гость


Покинул форум
Сообщений всего: 133
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Подскажите пжалста, как правильно из php в js вернуть массив, чтобы можно было поэлементно его обработать. в частности. мне надо получить с и d.
примерно так рнр:
PHP:
скопировать код в буфер обмена
  1. $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
  2.         Exit(json_encode($arr));


и в js

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function AjaxSuccess(data)
  3.         {
  4.                 if (data) {
  5.                         switch (data) {
  6.                                 case 'ERROR1' : alert('Ошибка');                break; 
  7.                                 default:{alert(data)
  8.                                                 }
  9.                                                  }
  10.                                 }
  11.                                         else alert('Ошибка передачи данных!');
  12.         }
который в алерт выводит всю строку в json формате.
 
 Top
DeepVarvar Супермодератор
Отправлено: 22 Января, 2013 - 14:44:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. data = eval("(" + data + ")");
  2. for (var i in data) {
  3.   alert("Свойство " + i + " = " + data[i]);
  4. }
 
 Top
KApriS
Отправлено: 22 Января, 2013 - 14:48:13
Post Id


Частый гость


Покинул форум
Сообщений всего: 133
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




превеликое спасибо!!!
 
 Top
KApriS
Отправлено: 18 Января, 2014 - 18:49:28
Post Id


Частый гость


Покинул форум
Сообщений всего: 133
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Можно еще раз по этой же теме помощи?
на этот раз есть поставка в js в виде
    {"message":null,"errors":null,"data":{"items":[{"title":"ййй","uri":"\/sample\/product\/1"},{"title":"ццц","uri":"\/sample\/product\/2"},{"title":"уууууу","uri":"\/sample\/product\/3"},{"title":"кккккк","uri":"\/sample\/product\/4"},{"title":"еееее","uri":"\/sample\/product\/5"}]}}

не могу обработать. что делаю
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. success: function(response)
  3.     {
  4. if (response['error'] == null)
  5.       {  
  6.          var data = eval('('+ response['data'] +')');
  7.           или не eval??? и как получить весь массив title и uri
  8.       }
  9.        else {
  10.         alert('ОШибка');
  11.       }
  12. }
  13.  


Или может я неправильно сформировала массив на вход? помогите плиз.
 
 Top
imper
Отправлено: 19 Января, 2014 - 13:34:13
Post Id



Частый гость


Покинул форум
Сообщений всего: 134
Дата рег-ции: Февр. 2012  
Откуда: Тольятти


Помог: 2 раз(а)

[+]


из пхп отправляй данные в js с помощью json


-----
Самое лучшее решение проблемы
самое простое
 
 Top
KApriS
Отправлено: 19 Января, 2014 - 20:27:35
Post Id


Частый гость


Покинул форум
Сообщений всего: 133
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




imper пишет: из пхп отправляй данные в js с помощью json

ну если быть совсем точной, то данные кодятся. но параметр $data представляет из себя массив данных
PHP:
скопировать код в буфер обмена
  1. return $this->_getJSONText(null, null, $data);
  2. ...
  3.   protected function _getJSONText($message = null, $errors = null, $data = null) {
  4.     $array = array('message' => $message, 'errors' => $errors, 'data' => $data);
  5.     return json_encode($array);
  6.   }

а data - это
PHP:
скопировать код в буфер обмена
  1.  
  2. ...
  3. $index = 0;
  4.       $array = array();
  5.       foreach ($iterator as $element)
  6.         {
  7.           $array[$index]['title'] = $element->title;
  8.           $array[$index]['uri'] = $element->uri;
  9.           $index++;
  10.         }
  11.         $data['items'] = $array;

Так вот - я неправильно подготовила данные к передаче? $data - надо подвергнуть json_encode()?, прежде чем подавать параметром на return? в любом случаем - как тогда при таком раскладе разобрать полученный массив и выстроить например схему <ol><li><a href={$item.uri}>{$item.title}</a></li>...</ol>
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB