依赖动态选择菜单,第二个菜单没有获取数据
Posted
技术标签:
【中文标题】依赖动态选择菜单,第二个菜单没有获取数据【英文标题】:Dependent dynamic Select menu, The second menu is not getting data 【发布时间】:2022-01-02 13:30:06 【问题描述】:我正在尝试创建一个从属选择菜单,其中选择分区将在另一个选择菜单上显示其下的区域。我为此使用了ajax。我是ajax的新手。选择菜单如下所示。 enter image description here
选择分区后,将启用分区选择菜单。我面临的问题是该地区显示为空。代码正在获取所选部门的 id,但无法根据 id 选择地区。我的数据库有一对多的关系,一个部门有很多地区。我在这里给出代码。 控制器
$data['divisions'] = DB::table('divisions')->get();
return view('Backend.pages.seller.manage_seller_profile',compact('seller_profile','districts','universities','subs','councilors'),$data);
我传递了很多东西,但这部分我只传递数据变量。
jQuery
$(document).ready(function()
$('#division').change(function()
var division = $('#division').val();
$('#district').html('');
$.ajax(
url: '/getDistrict/id',
type: 'GET',
data:
myID: division
,
dataType: "json",
success: function(data)
$('#district').append('<option value="">' + "Select District" + '</option>');
$.each(data, function(key, district)
$('#district').prop('disabled', false).css('background', '#fff').append('<option value="' + district.id + '">' + district.name + '</option>');
);
,
error: function()
);
);
);
可以正确显示除法变量的数据。但后来发生了什么我不确定。
路线
Route::get('/getDistrict/id', 'AddressController@getDistrict');
getDistrict 函数
function getDistrict()
$id = $_GET['myID'];
$res = DB::table('divisions')
->join('districts','divisions.id','=','districts.divisions_id')
->where('divisions.id', $id)
->get();
return Response::json($res);
感谢任何形式的帮助。我不明白我在哪里搞砸了。
【问题讨论】:
【参考方案1】:我可以给你一个有效的例子
刀片
先选择
<select class="select_option" name="category" id="category">
<option value="">All Categories</option>
<option value="source">Lead Source </option>
<option value="group">Group</option>
<option value="agent" >Agent</option>
<option value="status">Status</option>
</select>
第二次选择
<select class="form-control" name="selectedValue"id="selected-value">
</select>
ajax
<script type="text/javascript">
$("#category").change(function()
$.ajax(
url: " url('/category-data') ?category=" + $(this).val(),
method: 'GET',
success: function(data)
$('#selected-value').html(data.html);
);
);
</script>
路线
Route::get('/category-data','User\LeadController@categoryData');
控制器
public function categoryData(Request $request)
$id = $request->category; // call the name you are passing instead fo category
$html = '';
if ($id)
$res = DB::table('divisions')
->join('districts','divisions.id','=','districts.divisions_id')
->where('divisions.id', $id)
->get();
foreach ($res as $re)
$html .= '<option value="' . $re->id . '">' . $re->name . '</option>';
else
$html = '<option value="">Select </option>';
return response()->json(['html' => $html]);
【讨论】:
感谢您的建议。可以问一下数据库的形成吗?我无法理解这些行。如果 ($category == '组')。我应该使用区表中的 $category== 'division_id' 吗? 来自我的项目。给我秒我给你写函数 我已经更新了答案中的控制器功能以上是关于依赖动态选择菜单,第二个菜单没有获取数据的主要内容,如果未能解决你的问题,请参考以下文章
Rails 4 - 根据嵌套形式的第一个选择菜单中的选择动态填充第二个选择菜单