使用Datatables

时间:2016-05-04 15:23:00

标签: jquery post datatables symfony

我有一个表格,显示使用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数组发布到我的控制器以将它们保存到数据库的(最佳)方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以将您的ID放在隐藏的输入中(在表单内)。正如<input type="hidden", name="ids", value="">。您可以在jQuery submit事件中设置此值。