首页 > 解决方案 > 使用 laravel 在 ajax requast 发送的多个元素上循环

问题描述

我的视图中有多个输入复选框,我正在尝试将每个检查输入的 id 发送到我的控制器,所以我有以下脚本:

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

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


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

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


        alert("hello");
         
       var checkValues = $('input[name=casting_checked]:checked').map(function()
            {
                return $(this).data('id');
            }).get();

       

       var join_selected_values  = checkValues.join(",");
       
      $.ajax({
                url: "generer/"+id_projet+"/"+join_selected_values,
                type: 'get',
                 headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
                   data: {ids:join_selected_values},
                    success: function (data) {

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

在我的控制器中,我希望为每个获取的 id 做一些事情,所以我使用以下代码:

   public function generer(){

       if(request()->ajax())

        {
          
            $id_projet = request('id_projet');

           $id_casting = request('ids');
         
           $idsArray=explode(",",trim($id_casting,','));

           $size = count($idsArray);

           if(!empty($idsArray)){
              
              for($i=0;$i<$size;$i++){
        
                # code...

                    $id_contrat = Projet_Casting::where('id_projet',$id_projet)->where('id_casting',$idsArray[$i])->value('id_contrat');

                    dd($id_contrat);
          }

       } 
 
     }

  }

对于idajax 发送的每个我应该得到id_contratn 但使用这段代码我只能得到id_contrat一个idajax request.

当我这样做时,dd($idsArray);我得到:

 array:3 [
  0 => "15"
  1 => "17"
  2 => "19"
]

标签: jqueryajaxlaravel

解决方案


推荐阅读