Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 我对Laravel7中的ajax有问题_Jquery_Ajax_Laravel_Laravel 7_Selectinput - Fatal编程技术网

Jquery 我对Laravel7中的ajax有问题

Jquery 我对Laravel7中的ajax有问题,jquery,ajax,laravel,laravel-7,selectinput,Jquery,Ajax,Laravel,Laravel 7,Selectinput,对于select输入,我有以下ajax代码: $("#franchise").change(function() { //alert( $( "#franchise" ).val() ); var f = $( "#franchise" ).val(); $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-t

对于select输入,我有以下ajax代码:

$("#franchise").change(function() {
    //alert( $( "#franchise" ).val() );
    var f = $( "#franchise" ).val();
    $.ajaxSetup({
      headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
      }
    });
    $.ajax({
      type: 'POST',
      url  : "{{ route('ajax.series') }}",
      data : ({franchise : f}),
      dataType: 'JSON',
      success: function(response) {
        $("#series").html('');
        $("#series").append(response);
      }
    });
});
我也有以下的路线:

Route::post('ajax/series', 'AjaxController@series')->name('ajax.series');
我在AjaxController中有以下代码:

public function series(Request $request)
{
    $id = $request->input('franchise');//I get the id data from select input
    $series = Serie::where('franchise_id',$id)->get();
    return view('ajax.series', ['series' => $series]);
}
但是,当我执行select事件时,什么也没有发生


我知道
change
事件是有效的,因为我只使用
警报检查它,所以问题可能是ajax。有什么问题吗?

只需在“文档准备”功能中移动下面的代码即可

$("#franchise").change(function() {
    //alert( $( "#franchise" ).val() );
    var f = $( "#franchise" ).val();
    $.ajaxSetup({
      headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
      }
    });
    $.ajax({
      type: 'POST',
      url  : 'ajax/series',
      data : ({franchise : f}),
      dataType: 'JSON',
      success: function(response) {
        $("#series").html('');
        $("#series").append(response);
      }
    });
});
$.ajaxSetup({
      headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
      }
});
在公共布局文件中添加
{{csrf_field()}}

确保您的js代码位于同一文件中,而不是外部js,然后使用下面的js代码

$("#franchise").change(function() {
    //alert( $( "#franchise" ).val() );
    var f = $( "#franchise" ).val();
    $.ajax({
      type: 'POST',
      url  : "{{ route('ajax.series') }}",
      data : ({franchise : f}),
      dataType: 'JSON',
      success: function(response) {
        $("#series").html('');
        $("#series").append(response);
      }
    });
});

@sandy是对的,这肯定会解决您的问题,而且您还可以在browser developer工具中检查ajax调用,以查看这些调用实际上正在影响controller的方法

对于chrome,按Ctrl+Shift+I组合键


调试愉快

您的控制器和路由代码非常好,但是您的javaScript代码在这里有一个小问题,在laravel中,不需要为CSRF令牌添加ajax头字段,您可以添加CSRF令牌作为ajax的主体,就像您添加了特许权一样,代码将非常好地工作

我已经为您编写了代码,让您尝试一下

    $('#franchise').change(function(e) {
        e.preventDefault();
        $.ajax({
            type: "POST",
            url: "{{ route('ajax.series') }}",
            data: {
                franchise: $(this).val(),
                _token: $('meta[name="csrf-token"]').attr('content'),
            },
            success: function(response) {
                $("#series").html('').append(response);
            }
        });
    });