У меня есть раскрывающийся список, заполненный значениями из базы данных. То, что я пытаюсь достичь, – назначить оператор выбора каждому значению.
Введите код меню
<?php require 'conn.php'; $filter=mysql_query("select distinct fuel_type from car"); while($row = mysql_fetch_array($filter)) { $options .="<option>" . $row['fuel_type'] . "</option>"; $menu="<form id='filter' name='filter' method='post' action=''> <p><label>Filter</label></p> <select name='filter' id='filter'> " . $options . " </select> </form>"; } echo $menu; ?>
Теперь это меню будет использоваться для фильтрации списка автомобилей и будет размещено на боковой панели
Как я могу назначить каждое значение из выпадающего списка другого оператора выбора, например; select * from car where fuel_type = (dropdown list value selected)
не отправляя форму.
возможно, что-то вроде следующего?
if($_GET["filter"] == 'Petrol'){ $query=mysql_query("select * from car where fuel_type = 'Petrol'"); header("Location: cars.php"); }
Во-первых, когда вы создаете свой тег опции, назначьте значение, которое вы хотите отфильтровать в SQL-запросе, к атрибуту value:
$options .="<option value='".$row['fuel_type']."'>" . $row['fuel_type'] . "</option>";
Во-вторых, присвойте уникальные идентификаторы вашей форме и элементу select. Затем назначьте действие отправки формы выбранным элементам onchange event.
$menu="<form id='filterForm' name='filterForm' method='post' action=''> <p><label>Filter</label></p> <select name='filter' id='filter' onchange='document.getElementById("filterForm").submit()'> " . $options . " </select> </form>"; }
Теперь, когда вы измените опцию выбора, форма будет отправлена, и выбранное значение параметра будет заполнено как это значение элемента select #filter.
На странице php, на которую отправляется ваша форма, проверьте, чтобы значение элемента select с идентификатором #filter создавало запрос.
вам нужно javascript, чтобы открыть php-страницу с некоторыми параметрами.
в php вы получаете эти параметры из сообщения или получаете супер-глобальные переменные, а затем имеете оператор switch для выполнения другого запроса в зависимости от параметров, которые вы получили.
в отношении «без кнопки отправки» вы можете настроить слушателя в javascript для отправки формы или запуска функции при изменении значения. так как его выпадающий простой inline onmouseup = "javascript: submitform ();" будет достаточно