Javascript 将细枝中的数组数据与symfony 3中的表单数据一起发布
我有一个web应用程序,它正在将用户电子邮件和名称从.csv文件导入数据库以进行邮件合并 上传后,我将.csv数据(作为一个数组)从控制器传递到要进行列匹配的细枝,以确保将正确的值持久化到数据库(firstname列实际上是firstname等)。用户通过列上方的choiceType下拉列表进行验证,并通过表单中内置的按钮提交他们的选择。然后由控制器执行此操作,并用于将正确的列数据持久化到数据库中。但是,由于.csv文件是在请求/响应周期后临时存储的,因此会被清除。因此,我想将我发送的要在细枝中显示的.csv数据发布回控制器,以便持久化到数据库中 这只能使用javascript来完成吗?或者在Symfony中有没有办法做到这一点 以下是细枝的相关部分:Javascript 将细枝中的数组数据与symfony 3中的表单数据一起发布,javascript,php,twig,symfony-3.4,Javascript,Php,Twig,Symfony 3.4,我有一个web应用程序,它正在将用户电子邮件和名称从.csv文件导入数据库以进行邮件合并 上传后,我将.csv数据(作为一个数组)从控制器传递到要进行列匹配的细枝,以确保将正确的值持久化到数据库(firstname列实际上是firstname等)。用户通过列上方的choiceType下拉列表进行验证,并通过表单中内置的按钮提交他们的选择。然后由控制器执行此操作,并用于将正确的列数据持久化到数据库中。但是,由于.csv文件是在请求/响应周期后临时存储的,因此会被清除。因此,我想将我发送的要在细枝中
<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')
]
);