首页 > 解决方案 > laravel 5.8 中的动态下拉菜单

问题描述

这就是我想要发生的事情-第一个下拉列表(父)-第二个下拉列表(子)-第二个下拉列表中的选项将取决于第一个下拉列表的选定值。

我正在使用 laravel 5.8。

标签: laravel

解决方案


在你看来

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

<select class="form-control{{ $errors->has('state') ? ' is-invalid' : '' }}" onchange="dropdown(this.value);" name="state" id="state">
   <option>--select state--</option>
   <option value="Kerala">Kerala</option>
   <option value="Karnataka">Karnataka</option>
   <option value="Tamil Nadu">Tamil Nadu</option>
</select> 
<select class="form-control{{ $errors->has('district') ? ' is-invalid' : '' }}" name="district" id="district">
   <option>Please choose state from above dropdown</option>
</select>

<script >
    function dropdown(msg){
        var state=msg;
        $.ajax({
       url: 'getdistrict/'+state,
       type: 'get',
       dataType: 'json',
       success: function(response){
            $("#district").empty(); 

         var len = 0;
         if(response['data'] != null){
           len = response['data'].length;
         }
         if(len > 0){
           // Read data and create <option >
           for(var i=0; i<len; i++){

             var id = response['data'][i].id;
             var name = response['data'][i].name;

             var option = "<option value='"+name+"'>"+name+"</option>"; 

             $("#district").append(option); 
           }
         }

       }
    });
    }

在您的控制器中

public function district($id)
{
    $userData['data'] = DB::table('alldistricts')
    ->where('state', $id)
    ->orderBy('name', 'asc')
    ->get();

 echo json_encode($userData);
 exit;
}

在你的 web.php

Route::get('/getdistrict/{id}','RegistrationController@district')->name('getdistrict');

推荐阅读