如何根据从上一个 [above] 下拉列表中选择的值填充 select2 下拉列表中的选项?

我想使用 select2 js 为用户搜索带来一个下拉列表,下拉列表中的值必须根据所选公司填充,这是该下拉列表上方的下拉列表。


我将 XAMPP 版本 5 与 MYSQLI 一起使用。


<?php 


include 'db.php';


?> 

<html>

<head>

 <link href='https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css' rel='stylesheet' type='text/css'>

 <script src="../assets/js/core/jquery.3.2.1.min.js"></script>

 <link href="../assets/css/bootstrap.min.css" rel="stylesheet" />

 <script src="../assets/js/core/bootstrap.min.js"></script>

 <script src='https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js'></script>


</head>

<body>

<form action="" method="POST" enctype="multipart/form-data" autocomplete="off">



<div class="row">

<div class="col-sm-2">

</div>

<div class="col-sm-10">


<div class="form-group row">

<label for="sel1" class="col-sm-2 col-form-label">Company  :</label>

<div class="col-sm-10">

<select onChange="company_info();"   id="company_list"  required class="form-control select2" name="company_id"  >

<option value="">Select Company</option>

<?php 

$companyDetails=mysqli_query($con, "SELECT * FROM company  order by id desc  ");


while($company = mysqli_fetch_assoc($companyDetails))

{


echo "<option value='".$company['id']."'";


echo " >".$company['compName']."</option>";

}

?> 

</select>

</div>

</div>


<div id="companyDesc"></div>


<div class="form-group row">

<label for="pthings" class="col-sm-2 col-form-label">To dos :

</label>

<div class="col-sm-10">

<select id="selUser" style="width: 200px;">

<option value="0">- Search -</option>

</select>

</div>

</div>



<div class="form-group">


<button type="submit" name="add" class="btn btn-default greenbtn btnrightalign">Submit</button>

</div>

</div>


</form>

</body>

</html>


期输出:

我希望 select2 下拉列表中的选项基于从公司中选择的值。

例如:在选择公司“ABC Pvt Ltd”时,待办事项下拉列表(select2)值为“页眉、页脚、侧边栏、导航、注册、登录”。

在选择公司“RAM Pvt Ltd”时,To dos 下拉列表(select2)的值为“Registration,Login,Search,Payment,Logout”。

并且用户搜索功能应该可以正常工作。

实际输出:

从我的代码中,我可以获得一个 select2 下拉列表,其中选项中的值不是基于从公司下拉列表中选择的选项。

并且用户搜索功能无法正常工作。


动漫人物
浏览 141回答 2
2回答

翻阅古今

您需要使用公司 ID 添加您的 select2 帖子数据:$("#selUser").select2({&nbsp; &nbsp; ajax: {&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; url: "getData.php",&nbsp; &nbsp; &nbsp; &nbsp; type: "post",&nbsp; &nbsp; &nbsp; &nbsp; dataType: 'json',&nbsp; &nbsp; &nbsp; &nbsp; delay: 250,&nbsp; &nbsp; &nbsp; &nbsp; data: function (params) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; searchTerm: params.term,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; compId: $("#company_list").val() //here your company data&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; };&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; processResults: function (response) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; results: response&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; };&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; cache: true&nbsp; &nbsp; }});然后您可以获取公司 ID$_POST["compId"]并将其添加到您在 get data.php 上的查询中

MYYA

快速浏览一下您的代码,我猜您可能遇到了 MySQL 错误。在 getData.php 上,您似乎正在查询一个名为order的表。由于 order 是MySQL 中的保留字,除非表名包含在反引号中,否则这些查询几乎肯定会抛出错误。例如:$fetchData&nbsp;=&nbsp;mysqli_query($con,"select&nbsp;*&nbsp;from&nbsp;`order`&nbsp;order&nbsp;by&nbsp;id");
打开App,查看更多内容
随时随地看视频慕课网APP