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
Форумы портала PHP.SU :: Версия для печати :: Передача пользователей ajax
Форумы портала PHP.SU » » Вопросы новичков » Передача пользователей ajax

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

1. antonhristovsky - 15 Мая, 2012 - 21:50:46 - перейти к сообщению
Здравствуйте. Подскажите, пожалуйста, как мне правильно сделать отображение списка пользователей. У меня есть вид:
CODE (html):
скопировать код в буфер обмена
  1. <title>Поиск</title>
  2.  
  3. <script>
  4.         var user = '1';
  5.  
  6.         $.ajax({
  7.                 type: "POST",
  8.                 data: {user: user},
  9.                 url: "/ajax/poh",
  10.                 dataType: "json",
  11.                 success: function(data)
  12.                 {
  13.                         $("p").prepend(data);
  14.                 }
  15.         })
  16. </script>
  17.  
  18. <p></p>

И /ajax/poh:
PHP:
скопировать код в буфер обмена
  1. public function action_poh()
  2.         {
  3.                 $poh = Arr::get($_POST, 'poh', '');
  4.                
  5.                 $get = DB::select()
  6.                                         ->from('users')
  7.                                         ->execute()
  8.                                         ->as_array();
  9.                 $ma = array();
  10.                 foreach($get as $teg){
  11.                         $ma .= $teg['firstname'] . "<br>";
  12.                 }
  13.                
  14.                 echo json_encode($ma);
  15.         }

Вроде всё работает. Но почему когда выводит пользователей в самом начале пишет "Array"???
CODE (htmlphp):
скопировать код в буфер обмена
  1. ArrayXXX
  2. XXX
  3. XXX
  4. XXX
  5. XXX
  6. XXX
  7. XXX
2. Мелкий - 15 Мая, 2012 - 21:58:14 - перейти к сообщению
antonhristovsky пишет:
$ma = array();

Вот поэтому.
3. antonhristovsky - 15 Мая, 2012 - 22:14:02 - перейти к сообщению
Мелкий а если это убрать, то вообще ни чего не выводится...
4. ams - 15 Мая, 2012 - 22:18:35 - перейти к сообщению
Значит пустая переменная $get
5. antonhristovsky - 15 Мая, 2012 - 22:25:38 - перейти к сообщению
amsнет)
6. DelphinPRO - 16 Мая, 2012 - 05:30:00 - перейти к сообщению
$ma[] = $teg['firstname'] . "<br>";
7. antonhristovsky - 16 Мая, 2012 - 09:34:02 - перейти к сообщению
DelphinPRO тоже не помогает)
8. tuareg - 16 Мая, 2012 - 10:03:43 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. $ma ='';
  3.  foreach($get as $teg){
  4.         $ma .= $teg['firstname'] . "<br>";
  5.  }
  6. echo json_encode(array('result'=>$ma));
  7.  

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var user = '1';
  3.  
  4.         $.ajax({
  5.                 type: "POST",
  6.                 data: {user: user},
  7.                 url: "/ajax/poh",
  8.                 dataType: "json",
  9.                 success: function(data)
  10.                 {
  11.                         $("p").prepend(data.result);
  12.                 }
  13.         })
  14.  
9. antonhristovsky - 16 Мая, 2012 - 10:10:30 - перейти к сообщению
tuareg большое спасибо! Радость
10. Мелкий - 16 Мая, 2012 - 10:11:51 - перейти к сообщению
antonhristovsky пишет:
а если это убрать, то вообще ни чего не выводится...

Потому что будет нотайс.
+ по виду структуры - это Kohana, которая к тому же перехватит нотайс и выдаст свою страницу ошибки и трассировки.
И в обоих случаях - на выходе валидного JSON не будет.

В общем - при отладке всяких аяксов всегда смотрите на сырой ответ.

 

Powered by ExBB FM 1.0 RC1