PHP Multiselect с выбранным jQuery - возврат всех значений, а не только выбранных

Я использую множественный выбор, чтобы получить некоторые значения. Этот множественный выбор использует плагин Chosen jQuery.

По какой-то причине в PHP этот множественный выбор возвращает все значения, а не только выбранные.

HTML

<select name="taglist[]" size="10" id="taglist" style="width:350px;" class="chzn-select" multiple multiple-data-placeholder="Select some tags" >
**This is populated by Ajax**
</select>

После заполнения Ajax

<option value="Student community of reflection - A conscious environment of cooperative sharing of ideas and proces">Student community of reflection - A conscious environment of cooperative sharing of ideas and proces</option>
<option value="Teacher inclusive conversations - Emphasis on a sharing of power with students; visibility that enco">Teacher inclusive conversations - Emphasis on a sharing of power with students; visibility that enco</option>
<option value="Teacher feedback - Awareness of the power of written, oral and symbolic feedback on students self co">Teacher feedback - Awareness of the power of written, oral and symbolic feedback on students self co</option>
<option value="Student self assessment ( metacognitive reflection) - Continuous opportunities for students to thin">Student self assessment ( metacognitive reflection) - Continuous opportunities for students to thin</option>

PHP

foreach ($_REQUEST['taglist'] as $value)
{
mysql_query("INSERT INTO recent_tags (t_name, t_owner, t_post) VALUES ('$value', '$uid',  '$id')") or die (mysql_error());
}

Результат

Массив ( [0] => Студенческое сообщество для размышлений — Осознанная среда для совместного обмена идеями и процессами [1] => Инклюзивные беседы с учителями — Акцент на разделении власти со студентами; видимость, которая enco [2] => Обратная связь с учителем - Осознание силы письменной, устной и символической обратной связи с самостоятельным взаимодействием учащихся [3] => Самооценка учащихся (метакогнитивное отражение) - Постоянные возможности для учащихся худеть)

Это происходит, несмотря на то, что в поле множественного выбора был выбран только один из этих вариантов

Надеюсь, кто-нибудь сможет помочь с этим, это делает мою голову.

Результат print_r($_POST)

Array ( [entry_name] => aaa [entry_content] => [tag_category] => Insider Classroom Framework [taglist] => Array ( [0] => Student community of reflection - A conscious environment of cooperative sharing of ideas and proces [1] => Teacher inclusive conversations - Emphasis on a sharing of power with students; visibility that enco [2] => Teacher feedback - Awareness of the power of written, oral and symbolic feedback on students self co [3] => Student self assessment ( metacognitive reflection) - Continuous opportunities for students to thin ) [button] => Post ) 

Форма публикации

<form id="form1" name="form1" method="post" onSubmit="return checkAll();" action="process/webpl_journal_entry_process.php">

person M_Becker    schedule 11.02.2013    source источник
comment
Можете ли вы опубликовать HTML-код, который находится в поле выбора после запроса AJAX?   -  person Samsquanch    schedule 12.02.2013
comment
Добавлен ajax-запрос   -  person M_Becker    schedule 12.02.2013


Ответы (1)


Я думаю, что ваш HTML выключен. У тебя есть:

<select name="taglist[]" size="10" id="taglist" style="width:350px;" class="chzn-select" multiple multiple-data-placeholder="Select some tags" >
**This is populated by Ajax**
</select>

И я не вижу, как выглядят ваши «внутренние флажки», но я почти уверен, что у вас нет их как name='taglist[]', где вы хотите, чтобы они несли это значение, и вы не хотите, чтобы ваш выбор name будет taglist[].

Если вы используете список, вы хотите сохранить имя выбора как taglist[], но не хотите называть какие-либо внутренние параметры, просто используйте их value.

EDIT: Весь код отображается и работает нормально:

<form action="" method="post">
<select name="taglist[]" size="10" id="taglist" style="width:350px;" class="chzn-select" multiple multiple-data-placeholder="Select some tags" >
<option value="Student community of reflection - A conscious environment of cooperative sharing of ideas and proces">Student community of reflection - A conscious environment of cooperative sharing of ideas and proces</option>
<option value="Teacher inclusive conversations - Emphasis on a sharing of power with students; visibility that enco">Teacher inclusive conversations - Emphasis on a sharing of power with students; visibility that enco</option>
<option value="Teacher feedback - Awareness of the power of written, oral and symbolic feedback on students self co">Teacher feedback - Awareness of the power of written, oral and symbolic feedback on students self co</option>
<option value="Student self assessment ( metacognitive reflection) - Continuous opportunities for students to thin">Student self assessment ( metacognitive reflection) - Continuous opportunities for students to thin</option>
</select>
<input type="submit">
</form>
<?php
if($_REQUEST['taglist']) {

    foreach ($_REQUEST['taglist'] as $value)
    {
        echo $value ."<br>\n";
    }
}
?>
person Jon    schedule 11.02.2013
comment
Привет, Джон. Что ты имеешь в виду под «внутренними флажками»? Я только что добавил результаты Ajax в свою операцию. - person M_Becker; 12.02.2013
comment
Привет, Джон, чтобы уточнить, я использую список с множественным выбором, ни один из внутренних параметров не имеет имени, только их значения. Спасибо! - person M_Becker; 12.02.2013
comment
С добавленным кодом, заполненным Ajax, я только что провел небольшой тест с ним, и нет ничего плохого ни в одном из кодов, которые вы отобразили (кроме дыры в безопасности, позволяющей прямой ввод html в mysql). Определен ли taglist в другом месте HTML или переопределен в PHP? Что дает print_r($_POST);? ^^ (также, как отправляется форма?) - person Jon; 12.02.2013
comment
Добавлен вывод print_r в op. - person M_Becker; 12.02.2013
comment
Как подается форма? Публикация отдельной страницы в моем ответе за одну секунду, которая содержит весь ваш код и работает отлично. - person Jon; 12.02.2013
comment
Я думаю, что это может быть проблема с плагином Chosen jQuery. <form id="form1" name="form1" method="post" onSubmit="return checkAll();" action="process/webpl_journal_entry_process.php"> - person M_Becker; 12.02.2013
comment
Как выглядит функция checkAll()? ^^ - person Jon; 12.02.2013
comment
О, чувак, у меня было немного устаревшего кода в этой функции Javascript. Теперь все в порядке, спасибо за помощь! - person M_Becker; 12.02.2013