Javascript 将细枝中的数组数据与symfony 3中的表单数据一起发布

Javascript 将细枝中的数组数据与symfony 3中的表单数据一起发布,javascript,php,twig,symfony-3.4,Javascript,Php,Twig,Symfony 3.4,我有一个web应用程序,它正在将用户电子邮件和名称从.csv文件导入数据库以进行邮件合并 上传后,我将.csv数据(作为一个数组)从控制器传递到要进行列匹配的细枝,以确保将正确的值持久化到数据库(firstname列实际上是firstname等)。用户通过列上方的choiceType下拉列表进行验证,并通过表单中内置的按钮提交他们的选择。然后由控制器执行此操作,并用于将正确的列数据持久化到数据库中。但是,由于.csv文件是在请求/响应周期后临时存储的,因此会被清除。因此,我想将我发送的要在细枝中

我有一个web应用程序,它正在将用户电子邮件和名称从.csv文件导入数据库以进行邮件合并

上传后,我将.csv数据(作为一个数组)从控制器传递到要进行列匹配的细枝,以确保将正确的值持久化到数据库(firstname列实际上是firstname等)。用户通过列上方的choiceType下拉列表进行验证,并通过表单中内置的按钮提交他们的选择。然后由控制器执行此操作,并用于将正确的列数据持久化到数据库中。但是,由于.csv文件是在请求/响应周期后临时存储的,因此会被清除。因此,我想将我发送的要在细枝中显示的.csv数据发布回控制器,以便持久化到数据库中

这只能使用javascript来完成吗?或者在Symfony中有没有办法做到这一点

以下是细枝的相关部分:

        <div class="row">
        <div class="col-lg-12">                
            <section class="panel">
                <div class="panel-body">
                    <table class='table table-hover no-margin reports-table'>
                        <thead>
                            <tr>
                                <th>
                                   {{ form_start(emailCampaignListUserImportCheckForm)}}
                                   {{ form_row(emailCampaignListUserImportCheckForm.column1) }}
                                </th>
                                   <th>
                                      {{ form_start(emailCampaignListUserImportCheckForm)}}
                                      {{ form_row(emailCampaignListUserImportCheckForm.column2) }}
                                   </th>
                                      <th>
                                        {{ form_start(emailCampaignListUserImportCheckForm)}}
                                        {{ form_row(emailCampaignListUserImportCheckForm.column3) }}
                                      </th>
                                       <th class='entry-actions' data-hide="phone,tablet" data-name="Actions"></th>
                            </tr>
                        </thead>

                        <tbody>
                              {% for key in addedUsers|slice(1)  %}  
                                <tr>
                                    <td>
                                           {{key[0]}} 
                                        <div class="row-options">
                                            <span class="available-options" style="display: none;">
                                                <div class="options">                                                                                                                     
                                                    <a class="delete-entry">
                                                        <i class="fa fa-fw fa-trash-o"></i> Delete
                                                    </a>                                                        
                                                </div>
                                            </span>
                                        </div>
                                    </td>
                                    <td>
                                      {{key[1]}}                                          
                                    </td> 
                                        <td>                                       
                                           {{key[2]}}                                            
                                        </td>
                                            <td>
                                                <div class="btn-group">
                                                    <button type="button" class="btn btn-info btn-xs dropdown-toggle" data-toggle="dropdown">
                                                        <i class="fa fa-fw fa-cog"></i> <i class="fa fa-fw fa-caret-right"></i>
                                                    </button>
                                            <ul class="dropdown-menu" role="menu">                                                   
                                                <li class="delete-link">
                                                    <a>
                                                        <i class="fa fa-fw fa-trash-o"></i> Delete
                                                    </a>
                                                </li>
                                                <li class="delete-options">
                                                    <a class="cancel">
                                                        <i class="fa fa-fw fa-times"></i> Cancel
                                                    </a>
                                                </li>
                                                <li class="delete-options">
                                                    <a class="delete" href="#">
                                                        <i class="fa fa-fw fa-trash-o"></i> Confirm Delete
                                                    </a>
                                                </li>
                                            </ul>
                                        </div>                                        
                                    </td>
                                </tr>                                     
                              {% endfor %}
                        </tbody>
                    </table>                          
                </div>   
以下是文件的上载方式:

 //  grab uploaded .csv file
    $file = $_FILES["file"]["tmp_name"];
    $fileimplode = implode("/", $file); 

    // convert .csv if made on mac
    if (!ini_get("auto_detect_line_endings")) {
        ini_set("auto_detect_line_endings", '1');
    }
    //  create array from .csv
    $reader = Reader::createFromPath($fileimplode);
    $addedUsers = $reader->fetchAll();
    $emailCampaignList = $this->get('email.list_repository')->find($request->get('listId'));

    return $this->render('EmailBundle:MailMerge:emailCampaignListsUsersImportCheck.html.twig',
    [
        'emailCampaignList' => $emailCampaignList,
        'addedUsers' => $addedUsers,
        'emailCampaignListUserImportCheckForm' => $emailCampaignListUserImportCheckForm->createView(),
        'listId' => $request->get('listId')
    ]                   
    );

您可以将数据放在隐藏字段中,以便将其传递到第二步。请原谅,这似乎很简单,因为我对这一点很陌生:我是否向表单中添加HiddenType字段,然后将传递的数组($addedUsers)作为变量添加到细枝中的函数中?请说明如何在PHP中定义表单。添加到问题:文件是如何上载的?
 //  grab uploaded .csv file
    $file = $_FILES["file"]["tmp_name"];
    $fileimplode = implode("/", $file); 

    // convert .csv if made on mac
    if (!ini_get("auto_detect_line_endings")) {
        ini_set("auto_detect_line_endings", '1');
    }
    //  create array from .csv
    $reader = Reader::createFromPath($fileimplode);
    $addedUsers = $reader->fetchAll();
    $emailCampaignList = $this->get('email.list_repository')->find($request->get('listId'));

    return $this->render('EmailBundle:MailMerge:emailCampaignListsUsersImportCheck.html.twig',
    [
        'emailCampaignList' => $emailCampaignList,
        'addedUsers' => $addedUsers,
        'emailCampaignListUserImportCheckForm' => $emailCampaignListUserImportCheckForm->createView(),
        'listId' => $request->get('listId')
    ]                   
    );