vvz.nw.ru К занятиям по PHP

<< Формы > Списки с множественным выбором

В то время как для всех элементов формы на сервер передается пара, представляющая собой значение атрибута name и атрибута value элемента формы, для списка с множественным выбором необходимо получить информацию о (возможно) нескольких выбранных элементах. Если бы не книга Д.Котерова "Самоучитель PHP4", я бы ни за что не догадалась, что в этом случае следует значение атрибута name элемента select завершить квадратными скобками (намек на массив). В этом случае на сервере можно получить массив значений value выбранных элементов option. Приведенный ниже пример казался бы менее искусственным, если список содержал бы не 3, а хотя бы два десятка названий книг.

Выберите книги по PHP:


 
Фрагмент кода:
<form name="f" method="get" action="<?=$_SERVER['PHP_SELF']?>">

  <select name="books[]" size="3" multiple>
    <option value="Koterov">one</option>
    <option value="Wyke">two</option>
    <option value="Welling">three</option>
  </select>

  <input type="submit" name="ok" value="OK"><p>

</form>

<?
  // 1-й вариант проверки факта нажатия кнопки:
  // if (@$_GET['ok'])

  // 2-й вариант проверки факта нажатия кнопки:
     if (isSet($_GET['ok']))
     {
       if ( isSet($_GET['books']) )
       // если выбран хотя бы один элемент списка
       {
          echo   "<i>Выбраны книги с кодами:</i><br>";

          foreach ( $_GET['books'] as $v )
              echo "$v<br>";
       }
       else
          echo 'Ничего не выбрано<br>';
     };
?>


vvz.nw.ru  > PHP