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 :: Перебор массива из GET (отделить катлеты от мух)

 PHP.SU

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


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

> Без описания
Alex_dark74
Отправлено: 06 Марта, 2012 - 04:49:51
Post Id


Частый гость


Покинул форум
Сообщений всего: 210
Дата рег-ции: Янв. 2012  


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




Доброго времени суток.
Помогите новичку...
Ситуация такая получаую методом GET следующую строку:
edit_end.php?firm=60&firm=101&firm=30&manager=4

"firm" - это checbox их может быть много (в данном случае 3) "= 60" и "= 101" это ID из БД
"manager" это выборка из select "=4" это ID из БД

я получаю из строки массив который нужно использовать так:

"Менеджеру (manager=4) назначены следующие вирмы:
firm=60
firm=101
firm=30
Как их отделить друг от друга?

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. $get = $_GET['id'];
  4. print_r ($get);
  5. include "startup.php";
  6. include "model/model.php";
  7. include "view/up.php";
  8. $id = $_GET;
  9. $edit_firm = all_firm();
  10. $one_user = one_user($user);
  11. print_r ($one_user);
  12. foreach ($id as $key=>$ids)
  13. {
  14.         echo $key . "<br/>";
  15.         echo $ids . "<br/>";
  16. }
  17.  
  18. ?>
  19.  
  20. Менеджеру "<?=$one_user['name']?>" привязаны фирмы:
  21. <? foreach ($edit_firm as $edit_firms): ?>
  22. <p><?=$edit_firms['name_firm']?></p>
  23. <? endforeach ?>
  24.  
 
 Top
EuGen Администратор
Отправлено: 06 Марта, 2012 - 08:09:07
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Формируйте такой запрос:
edit_end.php?firm=60&firm[]=101&firm[]=30&manager=4

А в скрипте, принимающем запрос, достаточно:


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
smocki
Отправлено: 06 Марта, 2012 - 10:42:33
Post Id



Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Февр. 2012  


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




Почему бы не отправить постом, тогда будет так

PHP:
скопировать код в буфер обмена
  1. <select name="firm[]" size="5" multiple >
  2. <option value="firm_1">firm_1</option>
  3. <option value="firm_2">firm_2</option>
  4. ...
  5. <option value="firm_n">firm_n</option>
  6. </select>


Принимаем многомерный массив


Кстати можешь так и ГЕТом отправлять, тогда получится как EuGen написал

(Отредактировано автором: 06 Марта, 2012 - 10:53:15)



-----
Программеры курят быстро. Потому что мысль. Потому что она уйдет и придется думать ее снова...
 
 Top
Alex_dark74
Отправлено: 06 Марта, 2012 - 11:36:47
Post Id


Частый гость


Покинул форум
Сообщений всего: 210
Дата рег-ции: Янв. 2012  


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




Да с этим разобрался спасибо но теперь другая проблема
приходит запрос
firm=60&firm=101&manager=5

вывожу переменную

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $id_firm = $_GET['firm'];
  3. print_r ($id_firm);
  4.  


Фирмы 2, а выходит одна.\
Почему?
 
 Top
Hidalgo
Отправлено: 06 Марта, 2012 - 11:40:12
Post Id



Частый гость


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


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




PHP:
скопировать код в буфер обмена
  1. $count = count($_GET['firm']);
  2. for ($i = 0; $i < $count;  $i ++)
  3. {
  4.         echo "
  5.        <tr>
  6.                <td>".$_GET['firm'][$i]."</td>
  7.        </tr>
  8.        ";
  9. }
 
 Top
Alex_dark74
Отправлено: 06 Марта, 2012 - 11:54:44
Post Id


Частый гость


Покинул форум
Сообщений всего: 210
Дата рег-ции: Янв. 2012  


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




Hidalgo пишет:
PHP:
скопировать код в буфер обмена
  1. $count = count($_GET['firm']);
  2. for ($i = 0; $i < $count;  $i ++)
  3. {
  4.         echo "
  5.        <tr>
  6.                <td>".$_GET['firm'][$i]."</td>
  7.        </tr>
  8.        ";
  9. }


Получается, что там и перебирать нечего. (((

Может лучьше foreach ?
 
 Top
smocki
Отправлено: 06 Марта, 2012 - 12:36:28
Post Id



Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Февр. 2012  


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




Потому что ты отправляешь не массив. нужно создать массив. Я тебе писал пример, в селекте можно указать имя[]. т.е. фактически мы создаем массив и передаем гетом или постом пофиг

CODE (htmlphp):
скопировать код в буфер обмена
  1.     <?
  2.    if(isset($_GET['firm'])){
  3.    $a = $_GET['firm'];
  4.    print_r($a);
  5.    }
  6.    ?>
  7.    
  8.    
  9.     <form action="" method="get">
  10.     <select name="firm[]" size="5" multiple >
  11.     <option value="firm_1">firm_1</option>
  12.     <option value="firm_2">firm_2</option>
  13.     <option value="firm_n">firm_n</option>
  14.     </select>
  15.     <input type="submit" />
  16.     </form>

(Отредактировано автором: 06 Марта, 2012 - 12:41:35)



-----
Программеры курят быстро. Потому что мысль. Потому что она уйдет и придется думать ее снова...
 
 Top
Alex_dark74
Отправлено: 06 Марта, 2012 - 12:44:22
Post Id


Частый гость


Покинул форум
Сообщений всего: 210
Дата рег-ции: Янв. 2012  


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




Для ввода информации я использую
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <input type="checkbox" name="firm" value="<?=$edit_firms['id_firm']?>">
  3.  

(Добавление)
Спасибо ребята разобрался)))
 
 Top
smocki
Отправлено: 06 Марта, 2012 - 13:01:32
Post Id



Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Февр. 2012  


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




ну так и отправляйте массивом

CODE (htmlphp):
скопировать код в буфер обмена
  1.     <?
  2.    if(isset($_GET['firm'])){
  3.    $a = $_GET['firm'];
  4.    print_r($a);
  5.    }
  6.    ?>
  7.    
  8.    
  9.     <form action="" method="get">
  10. <input type="checkbox" name="firm[]" value="1" />
  11. <input type="checkbox" name="firm[]" value="2" />
  12. <input type="checkbox" name="firm[]" value="3" />
  13.     <input type="submit" />
  14.     </form>


-----
Программеры курят быстро. Потому что мысль. Потому что она уйдет и придется думать ее снова...
 
 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