получение многозначного выбора "значение"

Может ли кто-нибудь сказать мне, как получить «значение» выбранных элементов из многозначного выбора?

У меня есть следующее:

    <select id="category" name="category[]" multiple="multiple">';

        /* Select categories */ 
        [...]
        <option value"' . $row->id . '">' . $row->name . '</option>';

который вернет:

                    <option value"1">itemName1</option>

Почему приведенный ниже код дает мне выделенный текст, а не их значения? Что здесь не так?

                    $category = $_POST['category'];
        if (count($category) > 0){ 

            foreach ($category as $key => $value) {
                echo  $value . "<br>\n";
            }
        }

Это возвращает itemName1, и мне нужно фактическое value (1)

Спасибо


person Paragon    schedule 01.09.2012    source источник
comment
попробуйте изменить ‹option value1›itemName1‹/option› на ‹option value=1›itemName1‹/option›   -  person Satya    schedule 01.09.2012


Ответы (2)


Ваш HTML-код недействителен. У вас есть:

<option value"1">itemName1</option>

пока должно быть:

<option value="1">itemName1</option>
person Marcin Orlowski    schedule 01.09.2012
comment
Ух ты! Мне определенно нужен перерыв... Большое спасибо. - person Paragon; 01.09.2012

mulple select вернет такой запрос (имя = имя и значения = int)

name=1&name=4&name=99

поэтому он возвращает выбранные значения, как будет выглядеть массив:

array(
    name => array(
        [0] => 1
        [1] => 4
        [2] => 99
    )
)

ps если вы исправите ошибку HTML, вы, скорее всего, получите правильный результат

person mc_fish    schedule 01.09.2012