我有一个表格,显示使用Symfony 3和Datatables选择成员的人员。我可以选择一行或多行(成员)。通过Jquery,我可以获得所选成员的id。现在我想将选定的id作为成员保存到我的数据库中。但是,我正在努力如何完成这项工作。 我的表newmembers.html.twig在twig中有一个提交按钮,看起来像:
...
{% block body %}
{{ form_start(form) }}
<input type="submit" name="ids" id="submit" value="Add members" class="btn btn-primary" />
<table id="newmembers">
<thead>
<tr>
<th class="hidden">Id</th>
<th>Name</th>
</tr>
</thead>
<tbody>
{% for person in persons %}
<tr>
<td class="hidden">{{ person.id }}</td>
<td>{{ person.lastname }}, {{ person.initials }} {{ person.middlename }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{{ form_end(form) }}
{% endblock %}
{% block javascripts %}
<script type="text/javascript">
$('#submit').click(function () {
var ids = $.map(table.rows('.selected').data(), function (item) {
return item[0]
});
if (ids=='') {
alert('no member(s) selected');
return false;
}
return(ids);
</script>
{% endblock %}
变量id现在包含我要保存的所有成员ID。 在我的控制器中,我想出了:
public function newAction(Request $request)
{
$members= new Member();
$form = $this->createForm(MemberType::class, $member);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$members = $form->getData('ids');
//check if I have any results//
dump($members);die
//add saving to database...//
}
return $this->render('member/newmember.html.twig', array(
'persons' => $persons,
'form' => $form->createView(),
));
}
控制器不会为$ member返回任何结果。显然我在这里遗漏了一些东西:如何将我的twig模板中的jquery数组“ids”发布到我的控制器。
将所选行/ id的jquery数组发布到我的控制器以将它们保存到数据库的(最佳)方法是什么?
答案 0 :(得分:1)
您可以将您的ID放在隐藏的输入中(在表单内)。正如<input type="hidden", name="ids", value="">
。您可以在jQuery submit事件中设置此值。