首页 > 解决方案 > 使用 laravel 通过 ajax 接收多个 id

问题描述

我使用以下脚本从 ajax 请求中获取多个 id:

<script>
    $(document).ready(function () {

    $('#numero_projet').change(function(){


       var id_projet = $(this).find("option:selected").data("id");

      $('#generer').click(function(){

        var checkValues = [];
         
      $.each($("input[name='casting_checked[]']:checked"), function() {            
      checkValues.push($(this).data('id'));
    });
         var selectedvalues = checkValues;
         console.log(selectedvalues);
      $.ajax({
                url: "/generer/"+selectedvalues+"/"+id_projet,
                type: 'get',
                headers: {
                  'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                },
               
                    data: 'selectedvalues=' + selectedvalues,id_projet:id_projet,
                  
                         
                    success: function(response) {
                              var selectedvalues = checkValues;
                                window.location.href = 'generer/' + selectedvalues+'/'+id_projet;

                    }
              
            });
          });
      });
   
   });
 
</script>

给出console.log(selectedvalues);(3) [15, 17, 19]

在我的控制器中,我有:

public function generer(Request $request){

$projets_casting = Projet_Casting::whereIn('id_casting',explode(",", $request->selectedvalues))->where('id_projet',$request->id_projet)->get();


           $callback = function() use($projets_casting) {

            foreach ($projets_casting as $projet_casting) {
            
                $id_contrat  = $projet_casting->id_contrat;
               
                 dd($id_contrat);
              
      }
    };
          return Response::stream($callback, 200);
  }

问题是projets_casting根据 ajax 请求接收到的 id 返回多行,因此dd($id_contrat)应该还返回多个值,每行的值由projets_casting. 而在这种情况下,使用这段代码,我只得到一行的值,而不是所有行的值 projets_casting

如果您有任何想法,请帮助

标签: jqueryajaxlaravel

解决方案


推荐阅读