我嘗試創建一個相關的選擇選單,其中選擇磁區將在另一個選擇選單上顯示其下的磁區。我為此使用了ajax。我是 ajax 的新手。選擇選單如下所示。 在此處輸入圖片說明
選擇磁區后,將啟用地區選擇選單。我面臨的問題是該地區顯示為空。該代碼正在獲取所選磁區的 id,但無法根據 id 選擇地區。我的資料庫有一對多的關系,其中一個磁區有多個磁區。我在這里給出代碼。控制器
$data['divisions'] = DB::table('divisions')->get();
return view('Backend.pages.seller.manage_seller_profile',compact('seller_profile','districts','universities','subs','councilors'),$data);
我傳遞了很多東西,但對于這部分,我只傳遞資料變數。
查詢
$(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);
}
我很感激任何形式的幫助。我不明白我在哪里搞砸了。
uj5u.com熱心網友回復:
我可以給你一個有效的例子
刀刃
首先選擇
<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>
阿賈克斯
<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]);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/364841.html
