【问题标题】:Select option values changing on user select选择在用户选择时更改的选项值
【发布时间】:2017-10-05 20:42:02
【问题描述】:

我正在制作一个 Laravel 5.4 应用程序,用户在注册帐户时必须选择学校和班级。我想要一些 JavaScript (JQuery) 来更改用户选择的学校之后的课程选择选项值。

这意味着 $class->school_id 必须等于所选学校的 id 才能显示为选项。

我的看法:

<select name="school_id" class="form-control" required>
   <option value="" disabled selected>Pick your school</option>

      @foreach ($schools as $school)
        <option value="{{ $school->id }}" required>{{ $school-> name}}</option>
      @endforeach

</select>

<select name="my_class" class="form-control">
   <option value="" disabled selected>Pick your class</option>

      @foreach($classes as $class)
          <option value="{{$class->id}}">{{$class->name}}</option>
      @endforeach

</select>

【问题讨论】:

  • 班级和学校之间没有显示关系。将学校 ID 的数据属性添加到选项中,以便您可以过滤它们。或者在用户选择学校时使用 ajax 获取适当的课程。除此之外,这个问题太笼统了,网络上有很多资源用于级联选择

标签: javascript php jquery laravel laravel-5.4


【解决方案1】:

你应该为此添加一个 ajax 技术..

表格

<select name="school_id" id="school_id" class="form-control" required>
   <option value="" disabled selected>Pick your school</option>

      @foreach ($schools as $school)
        <option value="{{ $school->id }}" required>{{ $school-> name}}</option>
      @endforeach

</select>

<select name="my_class" id="my_class" class="form-control"></select>

JS

$(document).on('change','#school_id',function(){
    var school_id = $(this).val();
    $.ajax({
        url: "/getSchoolClass",
        data: {school_id: school_id},
        dataType: ,
        success: function(response){
            var newOptions = '<option value="" disabled selected>Pick your class</option>';
            $( response.data ).each(function( index ) {
                newOptions += '<options value="' + $(this).id + '">' + $(this).name + '</option>';
            });
            $('#my_class').html(newOptions);
        }
    });
});

路线

Route::post('/getSchoolClass','SomeController@someFunction');

控制器

function someFuntion(Request $request)
{
    $data = SchoolClass::where('school_id','=',$request->school_id)->get();
    return $data;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 2023-03-09
    • 1970-01-01
    • 2011-06-17
    • 2021-08-24
    • 2015-03-24
    • 1970-01-01
    相关资源
    最近更新 更多