Заполнение второго поля выбора в зависимости от первого варианта поля выбора
У меня есть этот выбор, давайте назовем его "X", который заполняется марками автомобилей в качестве опций из базы данных через SELECT.
<select name="X">
<?php
$row = mysqli_query("SELECT * FROM brands");
while($row2 = mysqli_fetch_array($row))
echo '<option value="' . $row2['brandID'] . '">' . $row2['brandName'] . '</option>
?>
</select>
Теперь мне нужно заполнить второй выбор, называемый "Y", спецификой моделей для выбранной марки.
Например, если в первом поле выбора (X) выбрано значение Audi, в качестве параметров во втором поле выбора (Y) должны быть указаны следующие параметры: A4,A6,TT,TT.
Заполнить второе поле выбора вручную легко, в основном то же самое, что и для первого, просто с другим запросом SQL.
$row = mysqli_query("SELECT modelName from modele WHERE brandName = '$brand'");
Где $brand будет иметь значение в соответствии с выбором первого выбора.
Спасибо
2 ответа
Put an id in your <select name="X"> code like <select name="X" id ="X">
Put another select like <select name="Y" id="Y">. Which will be blank.
put this jquery in your page.
$("X").on("change",function(){
var x_value=$("X").val();
$.ajax({
url:'ajax.php',
data:{brand:x_value},
type: 'post',
success : function(resp){
$("#Y").html(resp);
},
error : function(resp){}
});
});
in your ajax.php add the query.
<?php
$row = mysqli_query("SELECT modelName from modele WHERE brandName =".$_POST['brand']);
while($row2 = mysqli_fetch_array($row))
echo '<option value="' . $row2['modelId'] . '">' . $row2['modelName'] . '</option>
?>
Надеюсь, это сработает. Пожалуйста, скажите мне, если вам что-нибудь нужно.
Используйте ajax и на событие изменения вместе,
Метод: 1- создать страницу, на которой вы размещаете свои запросы. 2- эта страница должна реагировать на запрос и отправляет ответ с желаемым списком опций. пример:
if ($_POST["vehicle"] == car) // send response with array of car names as json obj for example
else // send response with array of motorbikes names
ваш ajax должен получить его и заполнить заполненное поле.
Если вам нужно больше деталей, я буду рад предоставить это