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]   

> Описание: как преобразовать данные полученный от пользователя?
Pelsh
Отправлено: 09 Января, 2010 - 23:14:24
Post Id



Новичок


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


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




имеем форму вида

CODE (text):
скопировать код в буфер обмена
  1.  
  2. <form name="form1">
  3.     <p><select name="formselect" size="3" multiple>
  4.     <option value="1">один</option>
  5.     <option value="2">два</option>
  6.     <option value="3">три</option>
  7.     </select> &nbsp;<input type="submit" name="submit" value="go"></p>
  8. </form>
  9.  


пользователь может выбрать сразу несколько значений например при одновременном выборе значений "один" и "три" после нажатия кнопки "GO" - сервер получит следующие данные

CODE (text):
скопировать код в буфер обмена
  1.  
  2. formselect=1&formselect=3&submit=go
  3.  


суть вопроса такова как теперь мне получить занчения переменной $formselect и преобразовать ее в одно значение вида:

$новая_переменная="значения перемнной $formselect идущие через запятую"

Пример:

при получении вот такой строки
CODE (text):
скопировать код в буфер обмена
  1.  
  2. formselect=1&formselect=3&submit=go
  3.  


скрипт должен обработать ее и в итоге получить новую переменную вида:

 
 Top
Мелкий Супермодератор
Отправлено: 09 Января, 2010 - 23:38:50
Post Id



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


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


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




вместо name="formselect" напишите name="formselect[]" - тогда получите массив из выбранных элементов. Ну или специально для вашей задачи:
PHP:
скопировать код в буфер обмена
  1. $select = implode(", ", $_POST['formselect']);


-----
PostgreSQL DBA
 
 Top
Pelsh
Отправлено: 10 Января, 2010 - 21:13:07
Post Id



Новичок


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


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




Мелкий пишет:
вместо name="formselect" напишите name="formselect[]" - тогда получите массив из выбранных элементов. Ну или специально для вашей задачи:
PHP:
скопировать код в буфер обмена
  1. $select = implode(", ", $_POST['formselect']);


написал вот такой скрипт
PHP:
скопировать код в буфер обмена
  1. <?
  2.  
  3.  
  4. $select = implode(", ", $_POST['formselect']);
  5. echo"$select";
  6.  
  7. ?>


в итоге выдает такую ошибку:

PHP:
скопировать код в буфер обмена
  1. Warning: implode() [function.implode]: Bad arguments. in K:\home\test1.ru\www\chtivo\snupik_add_new_book.php on line 4

(Отредактировано автором: 10 Января, 2010 - 21:13:37)

 
 Top
SAD Модератор
Отправлено: 10 Января, 2010 - 21:22:03
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




форма должна иметь такой вид
CODE (text):
скопировать код в буфер обмена
  1. <form name="form1" action="" method="POST">
  2.  
  3.     <p><select name="formselect[]" size="3" multiple>
  4.  
  5.     <option value="1">один</option>
  6.  
  7.     <option value="2">два</option>
  8.  
  9.     <option value="3">три</option>
  10.  
  11.     </select> &nbsp;<input type="submit" name="submit" value="go"></p>
  12.  
  13. </form>
 
 Top
Pelsh
Отправлено: 10 Января, 2010 - 21:33:51
Post Id



Новичок


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


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




SAD пишет:
форма должна иметь такой вид

может,но не должна, если не поставить metod, то все переменные передадутся скрипту в строке адреса
 
 Top
SAD Модератор
Отправлено: 10 Января, 2010 - 21:34:17
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




можно и не ставить "", если только одну переменную выводишь

скопируй форму себе заново и пробуй. у меня все работает
 
 Top
Мелкий Супермодератор
Отправлено: 10 Января, 2010 - 21:35:45
Post Id



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


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


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




Pelsh, данные-то с формы передаёте?


-----
PostgreSQL DBA
 
 Top
Pelsh
Отправлено: 10 Января, 2010 - 21:42:15
Post Id



Новичок


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


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




извиняюсь! все заработало - косяки были мои с формой - криво предавала мою переменную

тему можно закрыть

спасибо большое Мелкий и SAD!
Тема закрыта!
 
 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