我有一个选择框,我可以选择我的客户,每个客户可以有1个或多个网站,因此,当您更改客户选择时,网站的选择框也应该更改,但是主要问题是我无法填写这些网站带有选项的选择框。
我认为这应该是返回数组之类的最佳方法。
答案 0 :(得分:0)
尝试为您的ajax成功添加这样的内容:
var dropdown = document.getElementById('SiteDropDown');
options.forEach(function(element))
{
dropdown.options[dropdown.options.length] = new Option(element, '', false, false);
});
基本上,使用要显示的信息创建一个数组是一个好主意。
但是您也应该尝试在选择值上使用一个值。因此,当您选择一个选项时,系统将知道它的ID。
-> dropdown.options[dropdown.options.length] = new Option(element, 'ID of Array Element', false, false);
答案 1 :(得分:0)
我花了一些时间,但写了一些可能有效且简单的东西。另外,如果您使用的是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 post变量,并回显出将填充第二个下拉列表的选项。
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会将选定的客户端ID发送到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>
希望这对您或其他任何人都有帮助。
P.S:如果我的代码中有任何错误,我不是mysqli_ *用户,请告诉我。我还使用了准备好的语句,其中第二个PHP绑定了该值,该值更加安全并防止SQL注入。