Я потратил немного времени, но написал кое-что, что могло бы работать и просто.Также, если вы используете AJAX, вам действительно не нужны теги формы.Вы можете создать форму с помощью погружений и использовать функцию JQuery для запуска AJAX для отправки данных в базу данных.
Основной PHP для заполнения вашего первого раскрывающегося списка.
<?php
include_once("../Services/Mysql.php");
$result = $conn->query("SELECT klant_firmanaam, id From connectprolivedesk.klanten where reseller_klantnr = '5375' order by klant_firmanaam");
?>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<div class="form-group">
<select name="klantenDropDown" id="klantenDropDown" class="form-control">
<option value="" selected hidden disabled>Select Klant</option>
<?php
if($result->num_rows > 0){
while($row = $result -> fetch_assoc()){
echo "<option value=".$row["id"]." >".$row["klant_firmanaam"]."</option>";
}
}
?>
</select>
</div>
<div class="form-group">
<select name="SiteDropDown" id="SiteDropDown" class="form-control" >
<option value="" selected disabled hidden>Select Site</option>
</select>
</div>
</div>
</body>
Этот PHP получитПеременная AJAX и выводит параметры, которые будут заполнять второй выпадающий список.
include_once("../Services/Mysql.php");
$result = $conn->prepare("SELECT site_naam FROM connectprolivedesk.sites WHERE klant_id = ?");
$result -> bind_param("s",$_POST["klantId"]);
$result -> execute();
while($row = $result -> fetchAll()){
echo "<option value=".$row['sId'].">".$row['site_name']."</option>:
}
Этот код предназначен для вашего AJAX, который отправит ваш установленный kalntId в указанный выше второй PHP onChange вашего первого выпадающего списка.Ajax отправит идентификатор выбранного клиента в PHP, чтобы вы могли отсортировать сайты только для этого клиента.Затем захватит отраженный вывод и вставит их как опцию во второй выпадающий список.
<script>
$(document).ready(function(){
$('#klantenDropDown').on('change', function(){
$.ajax({
url: 'getSites.php',
type: 'post', //You can use get or post
data: {
'klantId':$(this).val()
},
dataType:'text',
complete:function(data){
if(data){
$('#SiteDropDown').html(data.responseText);
}
}
}
}
</script>
Надеюсь, это поможет вам или любому другому.
PS: я не большой mysqli_* пользователь, если есть какие-либо ошибки в моем коде, пожалуйста, сообщите.Также я использовал подготовленный оператор, в котором второй PHP связывает значение, которое намного безопаснее и предотвращает внедрение SQL.