有人可以告诉我为什么代码不符合我的要求吗?
我需要动态填充几个选择,我创建了一个函数,在该函数中,按参数传递了select,并通过向控制器的请求返回了一个json,它创建了每个选项。一切似乎正常,但是元素在视图中没有改变。
我不确定是否要以正确的方式将元素传递给函数。
用于填充选择项的功能:
function fillSegmentsSelects(select_element, segment_id) {
let route;
segment_id != null ?
route = `/api/getSegments/${segment_id}` :
route = `/api/getSegments`;
$.get( route, function(result){
select_element.empty();
if(result.segments.length>0) {
result.segments.forEach(element => {
var data = {
id: element.id,
text: element.code
};
var newOption = new Option(data.text, data.id, false, false);
select_element.append(newOption);
});
select_element.trigger('change');
select_element.prop("disabled", false);
} else {
select_element.append(`<option value=""> - NONE - <option>`);
select_element.prop("disabled", true);
select_element.trigger('change');
}
}
);
}
争论的方式:
fillSegmentsSelects( $('#racks') , null);
在控制器中:
public function getSegments($segment_id = null)
{
if ($segment_id === null) {
$segments = Segment::where('CODE','LIKE','Rack%')->get();
return response()->json([
'segments' => $segments
]);
} else {
$segment = Segment::find($segment_id);
$segments = Segment::where('segment_id', $segment->id)->get();
return response()->json([
'segments' => $segments,
]);
}
}