提问者:小点点

如何使用Laravel获得依赖于大学列表的学院的下拉列表?


我创建了名为college_drop和univ_drop的模型,它们的代码如下所示

我在数据库中创建了两个关于学院名称和大学名称的表,在学院名称表中,我给出了大学id,以便根据它的一个大学来给出适当的学院名称
从这个代码中,我能够得到大学列表,但在下拉列表中根本没有得到学院名称。。。 谁能帮帮我。。。 college_drop.php

<?PHP

namespace App;

use Illuminate\Database\Eloquent\Model;

class college_drop extends Model
{
    public function university()
    {
        return $this->belongsTo('App\univ_drop');
    }

}

univ_drop.php

<?PHP

namespace App;

use Illuminate\Database\Eloquent\Model;

class univ_drop extends Model
{
    public function colleges()
   {
        return $this->hasMany('App\college_drop');
   }
}

MainController.php

<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384- 
q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" 
integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" 
crossorigin="anonymous"></script>
<script src="http://demo.itsolutionstuff.com/plugin/jquery.js"></script>     
</head>


<select name="university" id="university">
    <option selected="false">
        select university
    </option>
    @foreach($university as $uni)

    <option value="{{$uni->id}}">{{$uni->university_names}}</option>

    @endforeach
</select>

<select name="college" id="college">
    <option selected="false">
       select college
    </option>
</select>

@section('scripts')


<script type="text/javascript">
    $(document).ready(function() {
        $('select[name="university"]').on('change', function() {
            var uniID = $(this).val();
            if(uniID) {
                $.ajax({
                    url: '/drop/ajax/'+uniID,
                    type: "GET",
                    dataType: "json",
                    success:function(data) {

                    
                        $('select[name="college"]').empty();
                        $.each(data, function(key, value) {
                            $('select[name="college"]').append('<option value="'+ key +'">'+ 
                              value+'</option>');
                        });


                    }
                });
            }else{
                $('select[name="college"]').empty();
            }
        });
    });
</script>
@endsection    

这是我的web.php文件

Route::get('drop',array('as'=>'drop','uses'=>'MainController@index'));
Route::get('drop/ajax/{id}',array('as'=>'drop.ajax','uses'=>'MainController@getColleges'));

共1个答案

匿名用户

您调用的路由与在web.php中定义的路由不同

$.ajax({
    url: '/drop/ajax/' + uniID,
    type: "GET",
    dataType: "json",
    success: function (data) {


        $('select[name="college"]').empty();
        $.each(data, function (key, value) {
            $('select[name="college"]').append('<option value="' + key + '">' +
                value + '</option>');
        });


    }
});