Приветствую всех, кто это читает! Вот написал функцию, которая загружает в список (<option value="значение">элемент</option>) элементы и их значения из базы данных MySQL. Список с возможностью выбора нескольких элементов. Вот собственно функция: PHP: function dmultmenu($table, $value, $label, $sort) { $query = mysql_query("SELECT $value, $label FROM $table ORDER BY $sort"); $row_query = mysql_fetch_array($query); do { echo '<option value="'.$row_query[$value].'"'; echo '>'.$row_query[$label].'</option>'; } while ($row_query = mysql_fetch_array($query)); mysql_free_result($query); } Функция функционирует нормально. Затем захотелось сделать так, что-бы при перезагрузке сценария (перезагрузке страницы) выбранные элементы оставались выбранными. Для этого в HTML вставил следующий код: PHP: <select name="select[]" size="3" multiple="multiple"> <option value="1"<?php if (isset($_POST['select']) && in_array("1", $_POST['select'])) { echo ' selected="selected"'; } ?>>1</option> <option value="2"<?php if (isset($_POST['select']) && in_array("2", $_POST['select'])) { echo ' selected="selected"'; } ?>>2</option> <option value="3"<?php if (isset($_POST['select']) && in_array("3", $_POST['select'])) { echo ' selected="selected"'; } ?>>3</option> </select> Опять же код функционировал нормально. На радостях я изменил функцию добавлением в нее следующего кода (кода предварительного выбора): PHP: function dmultmenu($table, $value, $label, $sort, $selectname) { $query = mysql_query("SELECT $value, $label FROM $table ORDER BY $sort"); $row_query = mysql_fetch_array($query); do { echo '<option value="'.$row_query[$value].'"'; if (isset($_POST[$selectname]) && in_array($value, $_POST[$selectname])) { echo ' selected="selected"'; } echo '>'.$row_query[$label].'</option>'; } while ($row_query = mysql_fetch_array($query)); mysql_free_result($query); } Вот тут то и получилась проблема - предварительный вывод не работает. Я уж подумал где-то в коде ошибка, проверял - нет. По отдельности код работает и все выбирается, а функция не пашет. Все указывает на то, что in_array не работает, поэтому selected="selected" не вставляется и элементы не выбираются. Я пробовал заменять in_array на array_key_exists, пробовал вручную переберать массив for - не выполняется условие хоть убей. Подскажите в чем проблемма. Удивительно то, что писал подобную функцию для выпадающего списка (она практически идентична) и все работало...
Все решено... PHP: if (isset($_POST[$selectname])) { for($i=0; $i < count($_POST[$selectname]); $i++) { if ($row_query[$value] == $_POST[$selectname][$i]) { echo ' selected="selected"'; } } }