【发布时间】:2020-08-17 22:10:54
【问题描述】:
我的代码有点问题。
我的表单中有一个下拉字段。我在它上面应用了 onclick 事件。 Onclick,我正在向控制器发送 ajax 调用,在那里我调用我的查询以获取所有年份列表并将其返回给刀片作为响应。
我的代码正在运行,我可以在“网络”选项卡下的预览中看到 ajax 响应,但问题是这些值没有显示在刀片上的下拉列表中。
刀片
<div class="form-group">
<select id="regist_year" data-dependent="registration">
<option selected value=""></option>
</select>
</div>
Javascript
$('#regist_year').on('click', function(e){
e.preventDefault();
var _token = $('input[name="_token"]').val();
var all_years = $(this).data('dependent');
$.ajax({
url:"{{ route('getAllyears') }}",
method:"POST",
data:{_token:_token,all_years:all_years},
success:function(result)
{
$('#'+all_years).html(result);
}
});
});
控制器
public function getAllyears(Request $request)
{
$all_years = $request->get('all_years');
$years = DB::table('auto_databases_one')
->select('year')
->distinct()
->orderBy('year', 'ASC')
->get();
$get_years = '<option value="">Select ' . ucfirst($all_years) . '</option>';
foreach ($years as $row) {
$get_years .= '<option value="' . $row->year . '">' . $row->year . '</option>';
}
echo $get_years;
}
【问题讨论】:
-
有
id="registration"的元素吗?没有显示。在<select>上使用点击事件也不是一个好主意,因为它会在打开和选择时触发 -
@N69S 正如我上面写的,我可以看到响应是网络选项卡中的完整下拉列表,但它没有显示在我的刀片中的下拉列表中。
-
@charlietfl 你建议用什么来选择?
-
@charlietfl 我的值正在显示,但是当我选择下拉列表的值时,它被更改为再次选择!
-
将新选项放在刚刚习惯的选择中是不正常的。你需要更换它们吗?更常见的方法是让选择填充另一个元素。如果它们在同一个选项中,用户怎么会知道您更改了选项?
标签: javascript php laravel