@pofeg

Как передать выбранные значения из select multiple в php массив/переменную?

У меня есть форма в которой обычный select multiple список(с возможностью множественного выбора значений)
<select name="spisok" multiple="multiple">
 <option value="1">raz</option>
 <option value="2">dva</option>
 <option value="3">tre</option>
</select>

Пытаюсь получить значение списка вот так:
$categ = $_POST['spisok'];
$categ = strip_tags($categ);
$categ = urldecode(trim($categ));


Когда выбираю одно значение в select, то все нормально, получаю;
string(1) "3"
Но когда выбираю больше одного значения, то получаю в ответ:
string(0) ""
Почему так происходит? Читал похожие вопросы тут, но не помогли [] в конце и вообще ничего не помогло.

А форма отправляется AJAX обработчиком:
var filter = $("#filter").serialize();
      $.post(dle_root + "engine/ajax/controller.php?mod=filter&category_id={category-id}", {form_field : filter, query:location.search}, function(data) {
        if( data ) {
          var content = jQuery.parseJSON(data);
          limit = content.limit;
          all_news = content.all_news;
          now_news = content.now_news;
          if( content.error ) {
            $("#dle-content").html(news);
            HideLoading('');
          } else {
            $("#dle-content").html(content.news);
            HideLoading('');
          }                       
        }
      }
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега PHP
А, ты тот самый страдалец с ДЛЕ.
Интересно, что такого ужасного надо натворить в прошлой жизни чтобы карма тебя так возила об стол в этой
Ответ написан
@harasaev
<select name="spisok[]" multiple="multiple">
 <option value="1">raz</option>
 <option value="2">dva</option>
 <option value="3">tre</option>
</select>


И на входе $_POST['spisok'] у тебя придет массивом,
а функции strip_tags, urldecode для работы со строками
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы