首页 > 解决方案 > 在 laravel 5.7 中重新加载页面后如何将数据保留在下拉列表中?

问题描述

我正在创建类似依赖下拉列表的任务,但我想在重新加载页面后保持数据不变。我成功地完成了第一个下拉列表的任务,但我很困惑如何为第二个下拉列表保留数据,请需要帮助。我在会话中输入值并检查选项值,但我对第二个选项值感到困惑,我如何检查 javascript 选项值中的会话值。

刀 :

<?php $reason_id=Session::get('reason_id');?>
       <div class="row">
                                        <div class="col-lg-4">
                                            <span><label><b>Reason for return</b></label></span>
                                        </div>
                                        <div class="col-lg-8 mt-1">
                                            <div class="form-group">
                                                <select class="form-control" id="reason" name="reason">
                                                    <option readonly>Select reason</option>
                                                     @foreach($reason as $id => $p_reason)
                                                     <option value="{{ $id }}" @if($reason_id==$id) selected="selected"@endif>{{$p_reason}}</option>
                                                     @endforeach
                                                </select>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="row">
                                        <div class="col-lg-4">
                                            <span><label><b>Reason Details</b></label></span>
                                        </div>
                                        <div class="col-lg-8 mt-1">
                                            <div class="form-group">
                                                <select class="form-control" id="reason_detail" name="reason_detail">
                                                </select>
                                            </div>
                                        </div>
                                    </div>

javascript:

$(document).ready(function(){
   $('#reason').change(function(){
    var ID = $(this).val(); 
    if(ID){
        $.ajax({
           type:"GET",
           url:"{{url('get-reason-details')}}?reason_id="+ID,
           success:function(res){               
            if(res){
                $("#reason_detail").empty();
                $("#reason_detail").append('<option>Select Reason Detail</option>');
                $.each(res,function(key,value){

                    $("#reason_detail").append('<option value="'+key+'">'+value+'</option>');
                });

            }else{
               $("#reason_detail").empty();
            }
           }
        });
    }else{
        $("#reason_detail").empty();
    }      
   });

控制器:

 public function set_session(Request $req)
    {
        $data=$req->all();
        Session::put('reason_id',$data['reason']);
        Session::put('reason_detail_id',$data['reason_detail']);
        $data=DB::table('product_details')->select('product_details.*')->where('product_id',$data['product_id'])->first();
        $reason=DB::table('reason')->pluck('description','reason_id');
        return view('returnproduct',['reason'=>$reason],['data'=>$data->product_id]);

    }

    public function get_reason($id)
    {
       $data=DB::table('product_details')->select('product_details.*')->where('product_id',$id)->first();
       $reason=DB::table('reason')->pluck('description','reason_id');
        return view('returnproduct',['reason'=>$reason],['data'=>$data->product_id]);
    }

    public function get_reason_details(Request $req)
    {
       $reason_detail_id=Session::get('reason_detail_id');
       $reason_details = DB::table("reason_details")
            ->where("reason_id",$req->reason_id)
            ->pluck("reason_detail","reason_detail_id");
            return response()->json($reason_details);
    }

标签: laravel

解决方案


推荐阅读