【问题标题】:Dependent dynamic Select menu, The second menu is not getting data依赖动态选择菜单,第二个菜单没有获取数据
【发布时间】:2022-01-02 13:30:06
【问题描述】:

我正在尝试创建一个从属选择菜单,其中选择分区将在另一个选择菜单上显示其下的区域。我为此使用了ajax。我是ajax的新手。选择菜单如下所示。 enter image description here

选择分区后,将启用分区选择菜单。我面临的问题是该地区显示为空。代码正在获取所选部门的 id,但无法根据 id 选择地区。我的数据库有一对多的关系,一个部门有很多地区。我在这里给出代码。 控制器

$data['divisions'] = DB::table('divisions')->get();
return view('Backend.pages.seller.manage_seller_profile',compact('seller_profile','districts','universities','subs','councilors'),$data);

我传递了很多东西,但这部分我只传递数据变量。

jQuery

$(document).ready(function() {
        $('#division').change(function() {
            var division = $('#division').val();
            $('#district').html('');
            $.ajax({
                url: '/getDistrict/{id}',
                type: 'GET',
                data: {
                    myID: division
                },
                dataType: "json",
                success: function(data) {
                    $('#district').append('<option value="">' + "Select District" + '</option>');
                    $.each(data, function(key, district) {

                        $('#district').prop('disabled', false).css('background', '#fff').append('<option value="' + district.id + '">' + district.name + '</option>');
                    });
                },
                error: function() {

                }
            });
        });
    });

可以正确显示除法变量的数据。但后来发生了什么我不确定。

路线

Route::get('/getDistrict/{id}', 'AddressController@getDistrict');

getDistrict 函数

function getDistrict()
    {
        $id = $_GET['myID'];
        $res = DB::table('divisions')
        ->join('districts','divisions.id','=','districts.divisions_id')
        ->where('divisions.id', $id)
        ->get();
        return Response::json($res);
    }

感谢任何形式的帮助。我不明白我在哪里搞砸了。

【问题讨论】:

    标签: jquery ajax laravel eloquent


    【解决方案1】:

    我可以给你一个有效的例子

    刀片

    先选择

     <select class="select_option" name="category" id="category">
      <option value="">All Categories</option>
       <option value="source">Lead Source  </option>
        <option value="group">Group</option>
         <option value="agent" >Agent</option>
         <option value="status">Status</option>
      </select>
    

    第二次选择

           <select class="form-control" name="selectedValue"id="selected-value">
        </select>
    

    ajax

    <script type="text/javascript">
        $("#category").change(function() {
            $.ajax({
                url: "{{ url('/category-data') }}?category=" + $(this).val(),
                method: 'GET',
                success: function(data) {
                    $('#selected-value').html(data.html);
                }
            });
        });
    </script>
    

    路线

     Route::get('/category-data','User\LeadController@categoryData');
    

    控制器

        public function categoryData(Request $request)
        {
    
    
            $id = $request->category; // call the name you are passing instead fo category
            $html = '';
            if ($id) {
    
                $res = DB::table('divisions')
                ->join('districts','divisions.id','=','districts.divisions_id')
                ->where('divisions.id', $id)
                ->get();
    
                foreach ($res as $re) {
                    $html .= '<option value="' . $re->id . '">' . $re->name . '</option>';
                }
            }  else {
                $html = '<option value="">Select </option>';
            }
            return response()->json(['html' => $html]);
        }
    

    【讨论】:

    • 感谢您的建议。可以问一下数据库的形成吗?我无法理解这些行。如果 ($category == '组')。我应该使用区表中的 $category== 'division_id' 吗?
    • 来自我的项目。给我秒我给你写函数
    • 我已经更新了答案中的控制器功能
    猜你喜欢
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    • 2016-12-20
    • 2020-10-02
    • 2021-12-11
    • 2017-09-19
    相关资源
    最近更新 更多