Всем доброго времени суток.Мучаюсь уже много дней с этими списками,нашел вроде оптимальный вариант да только вот только не понимаю что нужно прописать на месте вопросительных знаков.Буду очень благодарен если кто поможет <?php // Устанавливаем соединение с базой данных require_once("mysql_connect.php"); // Начало HTML-формы echo "<form method=post>"; // Формируем первый выпадающий список $query = "SELECT * FROM marka"; $m = mysql_query($query); if(!$m) exit(mysql_error()); // Если имеется хотя бы одна запись // формируем выпадающий список if(mysql_num_rows($m) > 0) { echo "<select name=mark_id onchange='this.form.submit()'>"; echo "<option value=0>=============</option>"; while($marka = mysql_fetch_array($m)) { echo "<option value=$marka[mark_id] $selected>$marka[mark]</option>"; } echo "</select>"; } // Формируем второй выпадающий список $query = "SELECT * FROM model WHERE mark_id='????????????????'"; // $mod = mysql_query($query); if(!$mod) exit(mysql_error()); if(mysql_num_rows($mod) > 0) { echo "<select name=model_id onchange='this.form.submit()'>"; while($model = mysql_fetch_array($mod)) { echo "<option value=$model[model_id]>$model[model_name]</option>"; } echo "</select>"; } // Конец HTML-формы echo "</form>"; ?>
всем спасибо,после поста сразу же разобрался как надо было: $query = "SELECT * FROM model WHERE mark_id='{$_POST['mark_id']}'";
У меня подобное решение со списками, т.е. при выборе значения из первого списка, появляется второй с нужными данными... Но при добавлении атрибута ACTION списки перестают работать, т.е. появляется форма и как только я пытаюсь выбрать значение из первого списка, второй не появляется и страница подвисает...Убираю этот атрибут и всё работает... Никак не пойму что мешает.
Сделал в такой самой стилистике... но прикол в том что при выборе в первом селекте не остаётся выбранного поля.... а если убрать echo "<option value=0>=============</option>"; - эту строчку, то всегда будет первая запись выбрана в первом селекте... как обойти этот трабл не могу понять... также если на форме несколько таких участков(2 селекта или селекты и лейбы тоже динамика), то форма сабмититься и значения выбранные ранее обнуляются.... посоветуйте как обойти эту канитель....
_LEON_ у тэга option атрибут selected HTML: <select> <option>...</option> <option selected> ... </option> </select>
topas спасибо канечно, но я знаю что у опшена есть свойство селектед, но в данном случае список выводиться циклом из базы, в таком случае будет всегда будет активна первая запись тоесть селектед будет тру.... а при выборе значение передаёт норм, но селект сбивается на первый опшен при выборе.... :shock: PHP: echo "<select name=mark_id onchange='this.form.submit()'>"; while($marka = mysql_fetch_array($m)) { echo "<option value=$marka[mark_id] $selected>$marka[mark]</option>"; } echo "</select>"; } ЗЫ Придёться наверно с AJAX -ом повозится... :?
_LEON_ Посмотрите влево, видите там красный переключатель с надписью "МОСК", если он находится в выключенном состоянии, включите. Извините за то, что не понял вопроса. Пожалуйста, переформулируйте вопрос, т.к. ответ Вам уже дал, и ничего нового по задаче сказать Вам не смогу
Как сохранить выбор селекта, после сабмита формы ? потому что PHP: onchange='this.form.submit()' Доганяете?
Доганяем, ловите, но прежде чем задавать подобные вопросы изучите ссылки "как правильно задавать вопросы" и на всякий случай "на танке". PHP: <?php $country = array('Россия', 'Казахстан', 'Латвия'); $default = 'Россия'; $default = (isset($_POST['country'])) ? $_POST['country'] : $default; echo "<select name='country'>"; foreach ($country as $value) { $selected = ($value == $default) ? ' selected' : ''; echo "<option value='$value' $selected>$value</option>"; } echo "</select>"; assert( !is_blond('__LEON__') ); ?>
topas, спасибо Но я уже на аяксе всё красиво сделал. ЗЫ: Советую всем использовать в такой ситуации эту технологию.