【发布时间】:2021-06-14 05:10:51
【问题描述】:
我在数据库中有以下两个表:
我有以下看法:
<div class="form-row">
<div class="col-sm-6">
<label>Pays</label>
<select class="form-control select2-single" data-width="100%" name="pays" id="pays">
<option label=" "> </option>
@foreach($countries as $country)
<option value="{{$country->name}}">{{$country->name}}</option>
@endforeach
</select>
</div>
<div class="col-sm-6">
<label>Ville</label>
<select class="form-control select2-single" data-width="100%" name="ville" id="ville">
</select>
</div>
</div>
我的控制器:
public function getAllStates()
{
$country_id = request('country');
$states = State::where('country_id',$country_id)->get();
$option = "<option value = ''> Select State</option>";
foreach($states as $state){
$option.= '<option value = "'.$state->name.'">'.$state->name.'</option>';
}
return $option;
}
我的脚本:
<script type="text/javascript">
$(document).ready(function(){
$("#pays").change(function(){
let country_id = this.value;
$.get('/getState?country='+country_id,function(data){
$("#ville").html(data);
});
});
});
</script>
我想在第二个下拉列表中显示与一个国家/地区相关的所有州。
所以在我的下拉国家/地区中,我传递了值一个国家名称并记下国家 ID,我如何连接这两个表以获取一个国家的所有州名称,其中国家名称而不是国家 ID?
【问题讨论】:
-
您是打算将
$country->name作为选项元素的值,还是country->id?<option value="{{$country->name}}"> -
我的意思是
-
对于
<option value="{{$country->name}}">,let country_id = this.value;表示country_id将是$country->name。 -
是的,那么我如何在我的控制器中获取国家/地区 ID 以获取州名称
-
在这一行:$states = State::where('country_id',$country_id)->get();