【问题标题】:Retrieve data with ajax request from jquery in laravel在 laravel 中使用 jquery 的 ajax 请求检索数据
【发布时间】:2020-02-25 16:32:00
【问题描述】:

我正在尝试在 laravel 中使用 jquery ajax 请求检索数据。我总是在请求时收到 500 个内部服务器错误。从选择中选择 GRN 编号时,我想自动加载表中的其他字段。任何帮助摆脱这个错误。我的代码如下。

查看 - analysis.blade.php

<div class="col-md-6 analysis-table">
        <div class="description-table-1">
        <input type="hidden" name="_token" value="{{ csrf_token() }}">
            <u><h5>Supply - 01</h5></u>
            <table id="grn_for_MC">
                <tr>
                    <td width="40%">GRN</td>
                    <td>
                        <select name="grn-one" id="grn-one" class="input-sm dynamic" data-dependant="new-supply-data">
                            <option value="">Select GRN</option>
                            @foreach($grn_list as $grn_lists)
                            <option value="{{$grn_lists->id}}">{{$grn_lists->grn_no}}</option>
                            @endforeach
                        </select>
                    </td>
                </tr>
                <tr>
                    <td>Supply Date</td>
                    <td id="load-supply-date">14/02/2020</td>
                </tr>
                <tr>
                    <td>Supplier Name</td>
                    <td id="load-supplier">Mahesh Lowe</td>
                </tr>
                <tr>
                    <td>Quantity Supplied</td>
                    <td id="load-qty">10000.00kg</td>
                </tr>
                <tr>
                    <td>No of Bags</td>
                    <td id="load-no-of-bags">20</td>
                </tr>
            </table>
        </div>
    </div>

我的脚本在下面.....

<script>
$(document).ready(function(){
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
        }
    });
    $('select#grn-one').on('change',function(e){
        e.preventDefault();
        var selected_grn_id = $(this).children("option:selected").val();

        console.log(selected_grn_id);
        $.ajax({
            url:"/getGrnData/" + selected_grn_id,
            method: 'get',
            // data: {id:selected_grn_id},
            dataType: 'json',
            success: function(){
                console.log('Request Send');
            }
        });

    });
});

TestController.php

public function ajax_show($id)
{
    if(Request::ajax()){
        $grnId = Input::get("id");
        return Response::json('Success',$grnId);
    }
}

VeryfyCsrfToken.php

protected function tokensMatch($request){
    $token = $request->ajax() ? $request->header('X-CSRF-Token') : $request->input('_token');
    return $request->session()->token() == $token;
}

路线....

Route::get('/getGrnData/{id}','TestController@ajax_show');

【问题讨论】:

  • 您的具体错误是什么?
  • 你可能也应该包括路线。
  • @Qonvex620:我的错误是代码 500 内部服务器错误。
  • 添加此代码部分后出现此错误 return Response::json($request->all());

标签: jquery ajax laravel


【解决方案1】:

我终于找到了问题的答案。视图没有改变。 TestController.php 和脚本已更改。我刚刚删除了 TestController 函数中的 ajax 验证,并从函数返回了 json 响应。然后从 ajax 捕获数据并将数据发送到请求的脚本。

TestController.php

public function show($id)
{
    $loadData = DB::table('summery')->where('id',$id)->get();
    return response()->json($loadData);
}

脚本....

<script>
$(document).ready(function(){
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
        }
    });
    $('select#grn-one').on('change',function(e){
        var selected_grn_id = $(this).children("option:selected").val();
        $.ajax({
            type:"GET",
            dataType:"json",
            url:'/getGrnData/'+selected_grn_id,
            success:function(response){
                console.log(response);
            }
        })
    });

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-23
    • 2020-08-03
    • 1970-01-01
    • 1970-01-01
    • 2014-02-14
    • 1970-01-01
    • 2015-07-10
    • 2013-07-08
    相关资源
    最近更新 更多