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

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

1. join - 27 Февраля, 2011 - 20:40:18 - перейти к сообщению
CODE (html):
скопировать код в буфер обмена
  1.  
  2. пример:
  3. <input name="demon" type="text" value="" />
  4. Присвоить переменной имя из формы:
  5. $demon = htmlspecialchars($_POST['demon']);
  6.  
  7. вопрос:
  8. //Список с множественным выбором
  9. <p>
  10. <select name="day_m[]" size="7" multiple>
  11. <option value="1" selected>Понедельник</option>
  12. <option value="2">Вторник</option>
  13. <option value="3">Среда</option>
  14. <option value="4">Четверг</option>
  15. <option value="5">Пятница</option>
  16. <option value="6">Суббота</option>
  17. <option value="7">Воскресенье</option>
  18. </select>
  19. </p>
  20.  


Как правильно делается присвоение
переменным со списками?
Запоролся на этом нюансе(
2. ALEN - 27 Февраля, 2011 - 20:52:00 - перейти к сообщению
Использовать нужно name=""
3. join - 27 Февраля, 2011 - 21:28:57 - перейти к сообщению
код php подскажите
4. ALEN - 27 Февраля, 2011 - 21:34:11 - перейти к сообщению
join
Цитата:
name="day_m[]"

А какая необходимость передавать целый массив???
5. join - 27 Февраля, 2011 - 22:10:43 - перейти к сообщению
Наверно работать с целым массивом не нужно.Честно говоря я не знаю.

name="day_m" ( без массива [])

$day_m = htmlspecialchars($_POST['day_m'] as $keys=>$values);

вибирать значения value из option?

Но этот вариант не работает.
6. ALEN - 27 Февраля, 2011 - 22:36:15 - перейти к сообщению
join
господи, что ты написал? )))
$_POST['day_m'] выведит то, что было выбрано в select
7. Мелкий - 27 Февраля, 2011 - 22:43:38 - перейти к сообщению
ALEN, не потерял у списка опцию multiple?

Как раз-таки обязательно указывать передачу массива, name="day_m[]".
Выбранные пункты меню (их значения value) будут значениями в соответствующем массиве, т.е. обход:
PHP:
скопировать код в буфер обмена
  1. <?
  2. echo "вы выбрали значения:", implode(", ", $_POST['day_m']);
  3. //или foreach ($_POST['day_m'] as $value) echo $value;
  4. ?>
8. join - 27 Февраля, 2011 - 22:59:31 - перейти к сообщению
мне бы в базу это "хозяйство" загнать, а не на экран моника .
9. ALEN - 28 Февраля, 2011 - 11:25:33 - перейти к сообщению
Мелкий пишет:
ALEN, не потерял у списка опцию multiple?

точно, просмотрел.. ((

join
Тебе уже сказали, объединяешь с помощью implode и строку записываешь куда нужно
10. LEONeso - 28 Февраля, 2011 - 11:49:12 - перейти к сообщению
join пишет:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. пример:
  3. <input name="demon" type="text" value="" />
  4. Присвоить переменной имя из формы:
  5. $demon = htmlspecialchars($_POST['demon']);
  6.  
  7. вопрос:
  8. //Список с множественным выбором
  9. <p>
  10. <select name="day_m[]" size="7" multiple>
  11. <option value="1" selected>Понедельник</option>
  12. <option value="2">Вторник</option>
  13. <option value="3">Среда</option>
  14. <option value="4">Четверг</option>
  15. <option value="5">Пятница</option>
  16. <option value="6">Суббота</option>
  17. <option value="7">Воскресенье</option>
  18. </select>
  19. </p>
  20.  


Как правильно делается присвоение
переменным со списками?
Запоролся на этом нюансе(


Пример:
PHP:
скопировать код в буфер обмена
  1. $month_array=array('','Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь');
  2. echo '<select name="month">';
  3. foreach(range(1,count($month_array)-1) as $month)
  4.             {echo '<option value="'.$month.'"'.((isset($_POST['month'])?$_POST['month']==$month:date('m')==$month)? ' selected':'').'>'.$month_array[$month].'</option>';}//содержит условия на определение месяца, в начале автоматически, далее по post
  5. echo '</select>';


Надеюсь ответ предельно ясен и понятен.
(Добавление)
join, товарищ Мелкий все верно подсказал. Просто присваивайте это значение переменной и записывайте данные в базу, при выводе из базы данных воспользуйтесь
PHP:
скопировать код в буфер обмена
  1. $name=explode(", ",$myrow['day_m']);

т.е. строку, разбивает на массив $name, в качестве делителя выступает запятая с пробелом.
11. join - 28 Февраля, 2011 - 13:53:33 - перейти к сообщению
Спасибо за внимательность, помошникам.

Только как то накладно в Array прописывать значения ('янв','февр','март')

option = значений может быть несколько сотен.
12. ALEN - 28 Февраля, 2011 - 14:55:29 - перейти к сообщению
join
дело фантазии, что придумаешь, то и будет
13. LEONeso - 28 Февраля, 2011 - 15:02:13 - перейти к сообщению
join, учитывайте, что, слишком долгое выполнение скрипта может привести к выводу ошибки 500, заранее продумывайте алгоритм.

 

Powered by ExBB FM 1.0 RC1