我有这段代码select state -> show state cities
:
<div class="form-group">
{{ Form::label('state', 'State') }}
<select name="state" id="state" class="form-control">
<option value="">{{ __('Select Province') }}</option>
@foreach ($state->data as $info)
<option value="{{$info->province_id}}">{{$info->province}}</option>
@endforeach
</select>
</div>
<div class="form-group">
{{ Form::label('city', 'City') }}
<select class="form-control" name="city" id="city">
<option value="">{{ __('Select City') }}</option>
</select>
</div>
和这个javascript:
<!-- find cities -->
<script type="text/javascript">
$(document).ready(function() {
$('select[name="state"]').on('change', function() {
var provinceID = $(this).val();
if(provinceID) {
$.ajax({
url: '{{ url('admin/getcitylistshipping') }}/'+encodeURI(provinceID),
type: "GET",
dataType: "json",
success:function(data) {
$('select[name="city"]').empty().append("<option value='' selected>Select</option>");
$.each(data.data, function(key, value) {
$('select[name="city"]').append('<option value="'+ value['city_name'] +'">'+ value['type'] + ' - ' + value['city_name'] +'</option>');
});
}
});
}else{
$('select[name="city"]').empty().append("<option value='' selected>Select</option>");
}
});
});
</script>
我想要的是在我的数据库中保存选项文本而不是它们 值(即ID)。
由于我的城市列表由json提供,并且没有任何依赖于他们,我在我的脚本中将我的值从value="'+ value['city_id'] +
更改为value="'+ value['city_name'] +
,我得到了我的城市名称,而不是他们的ID。
但我的问题在于我的states (provinces)
部分,在那部分我需要state id
作为值才能返回城市名称,但我不想将该ID保存在我的数据库中,我想要的是保存选项名称。
这是我的商店方法:
$this->validate($request, array(
'state' => 'nullable',
));
$shipping->state = $request->input('state');
如何在我的文件中保存我选择的状态文本而不是他们的ID 控制器?
想法?
答案 0 :(得分:0)
我在我的刀片上添加了额外的隐藏输入,并将我的脚本更改为:
html
<div name="statehidden" id="statehidden"></div>
script
<script type="text/javascript">
$(document).ready(function() {
$('select[name="state"]').on('change', function() {
var provinceID = $(this).val();
var statename = $("select[name='state'] option:selected").text(); //add this
if(provinceID) {
$.ajax({
url: '{{ url('admin/getcitylistshipping') }}/'+encodeURI(provinceID),
type: "GET",
dataType: "json",
success:function(data) {
$('#statehidden').empty(); //add this
$('#statehidden').append("<input type='text' name='statehidden' id='statehidden' value='"+statename+"'>"); //add this
$('select[name="city"]').empty().append("<option value='' selected>Select</option>");
$.each(data.data, function(key, value) {
$('select[name="city"]').append('<option value="'+ value['city_name'] +'">'+ value['type'] + ' - ' + value['city_name'] +'</option>');
});
}
});
}else{
$('#statehidden').empty(); //add this
$('select[name="city"]').empty().append("<option value='' selected>Select</option>");
}
});
});
</script>