jquery—使用laravel/ajax一次生成多个文档

0mkxixxg  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(227)

在我看来,我有多个复选框。
因此,我试图在单击某个元素时生成该选中元素的文档文件。
因此,我将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'));
            });
            console.log(checkValues);
            $.ajax({
                url: "generer/"+id_projet+"/"+checkValues,
                type: 'get',
                 headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
                   data: {ids:checkValues},
                    success: function (data) {
                    }
            });
          });
      });
   });
</script>

这个 checkValues 在我的控制台中:

(3) [15, 17, 19]
0: 15
1: 17
2: 19
length: 3

在我的控制器中,我有以下代码:

public function generer(){
    $id_projet = request('id_projet');
    $id_casting = request('ids');
    $id_contrat = Projet_Casting::where('id_projet',$id_projet)->where('id_casting',$id_casting)->value('id_contrat');
    $id_modele_contrat = Contrat::where('id_contrat',$id_contrat)->value('id_modele_contrat');
    $model_file = Model_Contrat::where('id_modele_contrat',$id_modele_contrat)->value('fichier');
    $templateProcessor = new TemplateProcessor('C:/Users/ss/Documents/GitHub/casting/storage/app/public/uploads/modeles_contrat/'.$model_file);
    $filename= $id_contrat;
    $templateProcessor->saveAs( $filename.'.docx');
    return response()->download( $filename.'.docx');
}

问题是这段代码只生成一个文档,而不是多个文档,因为在本例中,我的ajax请求发送了一个带有树ID的数组,它应该生成树文档。
当我这么做的时候 dd( $id_contrat); 例如,我得到一个值,而不是树值。
我的代码有什么问题?这是做这件事的正确方法吗?如果你有任何想法,任何建议请帮助。

gcuhipw9

gcuhipw91#

您正在向返回一个文件的函数发送一个数组。也许通过循环数组来生成文件并发回一个文件数组?
或者,在js中循环遍历数组,您将为数组中的每个项目返回一个文件。这是对数组中每个元素的一个ajax调用。

相关问题