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 :: выборка из массива POST

 PHP.SU

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


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

> Без описания
Didakes
Отправлено: 18 Июля, 2013 - 15:36:43
Post Id


Новичок


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


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




Здравствуйте, уважаемые форумчане!
Я практически не знаю php, но с небольшим опытом программирования на других ЯП и данным сайтом я решил написать одну небольшую вещь. Так вот, есть два скрипта на php: один скрипт по базе данных генерирует форму из вот таких частей:
CODE (html):
скопировать код в буфер обмена
  1. <tr><td width=150>Ник пользователя
  2. <input type="hidden" name="тут ID пользователя в базес префиком" value=1>
  3. </td><td width=150>
  4. <input type="text" name="тут тоже ид пользователя из базы с префиксом" size="20" value=тут будет циферка>
  5. </td></tr>
  6. и ещё в конце формы плетется кол-во строк формы

Пользователей в базе при каждом выполнении скрипта будет разное кол-во Растерялся
Есть другой скрипт, который принимает всё это через методом пост
Так вот, как можно реализовать выборку из массива _POST? я пробовал делать так
PHP:
скопировать код в буфер обмена
  1. $b = 0;
  2. while ($b++<(кол-во строк))
  3. {
  4.         $a = 'dId' + $b;
  5.         echo $_POST[$a];
  6. }

но не работает...
 
 Top
asmc
Отправлено: 18 Июля, 2013 - 15:49:48
Post Id


Новичок


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


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




Здравствуйте,

Для отладки процесса в начало PHP-кода можно добавить следующее:

Это выведет весь массив $_POST и позволит узнать, что там вообще есть.

Вызывают сомнения участки вида
CODE (html):
скопировать код в буфер обмена
  1. name="тут ID пользователя в базес префиком"

т.к. в полях name предполагаются имена соответствующих значений в массиве $_POST и их лучше сделать английскими и короткими.
 
 Top
Didakes
Отправлено: 18 Июля, 2013 - 15:55:48
Post Id


Новичок


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


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




Насчет
CODE (html):
скопировать код в буфер обмена
  1. name="тут ID пользователя в базес префиком"

тут будут цифры с мелким префиксом на английском, вроде uId
(Добавление)
CODE (htmlphp):
скопировать код в буфер обмена
  1. array(16) {
  2. ["dId1"]=> string(1) "1"
  3. ["dInt1"]=> string(3) "142"
  4. ["dId2"]=> string(1) "2"
  5. ["dInt2"]=> string(3) "254"
  6. ["dId3"]=> string(1) "3"
  7. ["dInt3"]=> string(5) "86743"
  8. ["dId4"]=> string(1) "4"
  9. ["dInt4"]=> string(4) "1357"
  10. ["dId5"]=> string(1) "5"
  11. ["dInt5"]=> string(2) "38"
  12. ["dId6"]=> string(1) "6"
  13. ["dInt6"]=> string(5) "32877"
  14. ["dId7"]=> string(1) "7"
  15. ["dInt7"]=> string(3) "353"
  16. ["cUsrs"]=> string(1) "7"
  17. ["submit"]=> string(18) "Сохранить" }
 
 Top
lraido
Отправлено: 18 Июля, 2013 - 16:14:39
Post Id



Гость


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


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




print_r($_POST); - выведет весь массив

echo $_POST['name'];

вместо слова name впиши названине поля формы <input type="text" name="name" value="">


-----
Мотивация Успеха - http://vk[dot]com/club80816517
 
 Top
Didakes
Отправлено: 18 Июля, 2013 - 16:19:51
Post Id


Новичок


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


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




lraido пишет:
print_r($_POST); - выведет весь массив

echo $_POST['name'];

вместо слова name впиши названине поля формы <input type="text" name="name" value="">

Это я знаю, и это подошло бы, если бы кол-во полей, которые получает скрипт, было бы статичным, а так как кол-во динамично изменяется, мне нужен какой-либо цикл. Я конечно могу сделать чтобы ввели 10 элементов, обработали скриптом, ввели следующие и т.д., но хотелось бы весь список разом обработать...
 
 Top
asmc
Отправлено: 19 Июля, 2013 - 14:23:46
Post Id


Новичок


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


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




Didakes пишет:
хотелось бы весь список разом обработать


тогда так (foreach проходит по всему массиву даже для нечисловых индексов):
PHP:
скопировать код в буфер обмена
  1. foreach($_POST as $key => $val)
  2. {
  3.   echo $val;
  4. }

(Отредактировано автором: 19 Июля, 2013 - 14:24:49)

 
 Top
esterio
Отправлено: 19 Июля, 2013 - 14:39:41
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




Пример:
Имеем форму. Обратите внимание на атрибут name в текстовых инпутах (name="somevar[]")
form.php
CODE (html):
скопировать код в буфер обмена
  1. <form action="post.php" method="post">
  2. <input type="text" name="somevar[]" value="1"><br>
  3. <input type="text" name="somevar[]" value="2"><br>
  4. <input type="text" name="somevar[]" value="3"><br>
  5. <input type="text" name="somevar[]" value="4"><br>
  6. <input type="submit" name="submit" value="SEND">
  7. </form>
  8.  

А также обраблтчик
post.php


результат:
 
 Top
Didakes
Отправлено: 24 Июля, 2013 - 15:26:11
Post Id


Новичок


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


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




asmc пишет:
Didakes пишет:
хотелось бы весь список разом обработать


тогда так (foreach проходит по всему массиву даже для нечисловых индексов):
PHP:
скопировать код в буфер обмена

foreach($_POST as $key => $val)
{
echo $val;
}

Мне нужно одни данные обработать одним циклом и занести в бд, а другие - другим, хотя я тоже подумал от этом цикле, когда наткнулся на него на сайте
esterio, вот это уже интересно, получается, если всем полям присвоить название с [] на конце, тогда все значения будут переданы в один массив? Ха-ха Если так, думаю решение моей проблемы найдено, сейчас проверю и отпишусь
P.S. Извините, что поднимаю старые темы Растерялся
 
 Top
Didakes
Отправлено: 25 Июля, 2013 - 11:17:59
Post Id


Новичок


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


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




Подтверждаю, заработало, спасибо огромное, кнопочку нажму когда появится достаточно постов, думаю вопросы ещё будут)
 
 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