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 :: как принять массив

 PHP.SU

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


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

> Без описания
Axiles
Отправлено: 30 Июля, 2010 - 08:36:23
Post Id


Гость


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


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




существует таблица содержание которой передаётся в php скрипт методом POST
вот таким образом пытаюсь принять данные в скрипте:

PHP:
скопировать код в буфер обмена
  1.  
  2. $nom = $_POST('nom');
  3. $nem = $_POST('nem');
  4.  


но принимаю только последньую строку таблицы

Вопрос: как мне весь массив принять?
 
 Top
Djin_dj
Отправлено: 30 Июля, 2010 - 08:56:11
Post Id



Частый гость


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


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




Axiles пишет:
Вопрос: как мне весь массив принять?

PHP:
скопировать код в буфер обмена
  1.  
  2. if(isset($_POST) && !empty($_POST))
  3. {
  4.    foreach($_POST as $var=>$var_value)
  5.   {
  6.      $$var = $var_value;
  7.   }
  8. }
  9.  

После выполнения этого цикла у Вас будут доступны переменные $nom = $_POST['nom'] и $nem = $_POST['nem']

(Отредактировано автором: 30 Июля, 2010 - 08:58:22)

 
 Top
smok
Отправлено: 30 Июля, 2010 - 09:58:54
Post Id


Новичок


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


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




Axiles пишет:
существует таблица содержание которой передаётся в php скрипт методом POST
вот таким образом пытаюсь принять данные в скрипте:

PHP:
скопировать код в буфер обмена
  1.  
  2. $nom = $_POST('nom');
  3. $nem = $_POST('nem');
  4.  


но принимаю только последньую строку таблицы

Вопрос: как мне весь массив принять?


http://php.su/functions/?f=extra...&choice=info
 
 Top
Axiles
Отправлено: 30 Июля, 2010 - 11:17:24
Post Id


Гость


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


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




дело вот в чём, array извлекает из $_POST только значения последней строки, предыдущие затирает так как одинаковые индексы, тоесть названия столбцов, они же и имена форм (я так думаю)
extract конечно упростило мне задачу, но проблему не решыло, ведь я не могу извлеч из $_POST всю инфу
наверно нада придумывать скрипт который будет индексы переименовывать или ещё чего (
(Добавление)
Djin_dj пишет:
Axiles пишет:
Вопрос: как мне весь массив принять?

PHP:
скопировать код в буфер обмена
  1.  
  2. if(isset($_POST) && !empty($_POST))
  3. {
  4.    foreach($_POST as $var=>$var_value)
  5.   {
  6.      $$var = $var_value;
  7.   }
  8. }
  9.  

После выполнения этого цикла у Вас будут доступны переменные $nom = $_POST['nom'] и $nem = $_POST['nem']


чесно говоря не понял (
 
 Top
smok
Отправлено: 30 Июля, 2010 - 12:02:14
Post Id


Новичок


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


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




PHP:
скопировать код в буфер обмена
  1. if(isset($_POST) && !empty($_POST)){
  2.    foreach($_POST as $var=>$var_value){
  3.      if (!isset($$var)) $$var = $var_value; else{
  4.           $i=1;
  5.           while(isset(${$var}.$i)){$i++}
  6.           ${$var}.$i=$var_value;
  7.      }
  8.   }
  9. }


Вроде как должно работать, но не проверял. Думаю идея понятна.

(Отредактировано автором: 30 Июля, 2010 - 12:02:48)

 
 Top
Axiles
Отправлено: 30 Июля, 2010 - 12:11:05
Post Id


Гость


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


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




Поставлю вопрос по другому. Меняю метод передачис POST на GET, вижу передачу:

CODE (html):
скопировать код в буфер обмена
  1.  
  2. test.php?nom=1&nem=55&nom=2&nem=66&nom=3&nem=77
  3.  


PHP:
скопировать код в буфер обмена
  1.  
  2. $nom = $_GET('nom');
  3. $nem = $_GET('nem');
  4.  

таким образом я получаю только nom=3 nem=77


и таким образом я получаю только nom=3 nem=77


тоже даёт только nom=3 nem=77
а как мне все значения получить?
 
 Top
EuGen Администратор
Отправлено: 30 Июля, 2010 - 12:15:14
Post Id


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


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


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




Передавайте так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. test.php?nom[]=1&nem[]=55&nom[]=2&nem[]=66&nom[]=3&nem[]=77
  3.  

И проверяйте массивы
$nom=$_GET['nom']
$nem=$_GET['nem']


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
smok
Отправлено: 30 Июля, 2010 - 12:16:12
Post Id


Новичок


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


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




ну так ты пиши сразу в чём проблема.
В твоём случае надо просто имена полей поменять. Одинаковые поля у инпутов не должны быть, т.к. ты никаким способом их не получишь, кроме как распарсить QUERY_STRING. Если ты выбираешь 2ой способ, то explode тебе в помощь, иначе параметр name у инпутов.
 
 Top
Axiles
Отправлено: 30 Июля, 2010 - 13:20:06
Post Id


Гость


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


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




EuGen пишет:
Передавайте так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. test.php?nom[]=1&nem[]=55&nom[]=2&nem[]=66&nom[]=3&nem[]=77
  3.  

И проверяйте массивы
$nom=$_GET['nom']
$nem=$_GET['nem']

пасиба Улыбка
процесс пошол )
 
 Top
JustUserR
Отправлено: 30 Июля, 2010 - 13:37:26
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




Axiles Если строка запроса формируется не вами и вы не имеете возможность переопределелить имена передаваемых параметров с добавлением к ним квадратных скобок чтобы они автоматически трактовались как массивы PHP - то можете воспользовать ручным разбором переменной окружения QUERY_STRING - в таком случае вы получите все реально переданные параметры и вам нужно будет только обработать их посредством функиций типа explode и сохранить в конечный массив


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB