动态填充选择标签

时间:2019-07-17 14:01:06

标签: javascript jquery laravel

有人可以告诉我为什么代码不符合我的要求吗?

我需要动态填充几个选择,我创建了一个函数,在该函数中,按参数传递了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,
        ]);
    }
}

0 个答案:

没有答案