Laravel:无法从控制器中的Ajax jQuery代码读取数据

时间:2019-08-24 13:37:18

标签: laravel-5

我在我的ajax函数中发送小节ID,但我在我的控制器函数中无法接收此数据。请需要您的帮助。

这是我的jQuery:

$(document).ready(function(){
    $.ajaxSetup({
    headers: {

        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});

    $('#getGroupe').change(function(){
        var section = jQuery('#getGroupe').val();
        $.ajax({
            url: "/ajax",
            type: "POST",
            data: {                   
                section:section,                   
            },

            success: function(){
                alert(section);
            },
            error: function(){
                alert("error");
            }
        });

        $.post("{{URL::to('/ajax')}} ",function(data){
                $('#groupe').empty().html(data);

        });
    });
});

网络:

Route::post('ajax' , 'SeanceController@ajaxfct');

我在控制器中的功能:

public function ajaxfct(Request $request){

    $id = $request->section;
    $groupes = \DB::table('groupes')
                ->where('section_id','=',$id)
                ->get();

    return view('seance.groupe')->with([
        'groupes' => $groupes
    ]);
}

1 个答案:

答案 0 :(得分:0)

代码已接近完美运行,以下设置可正确传递数据: HTML:

<select id="getGroupe">
    <option>1</option>
    <option>2</option>
    <option>3</option>
</select>
<script>
    $(document).ready(function(){
        $.ajaxSetup({
            headers: {

                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });

        $('#getGroupe').change(function(){
            var section = jQuery('#getGroupe').val();
            $.ajax({
                url: "/ajax",
                type: "POST",
                data: {
                    section:section,
                }
            }).done(function( msg ) {
                console.log('response: ', msg)
            });
        });
    });
</script>

控制器:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class SeanceController
{
    public function ajaxfct(Request $request)
    {
        return ['received' => $request->section];
    }
}

路线:

Route::post('/ajax', 'SeanceController@ajaxfct');