Symfony:使用ajax在表上搜索字段

时间:2016-11-24 14:06:10

标签: php jquery ajax symfony

我想为每列创建一个包含搜索字段的表。我用ajax将搜索值发送给控制器。

我的问题是我不知道必须返回控制器(HTML或Json)的结果类型以及如何在我的树枝表上显示结果

我的JS功能:

.col-md-2

我在twig文件中的表:

$.ajax({
    url: "{{ path('demande_search') }}",
    type: "GET", 
    data: 'filter='+$("#f").val(),
    success: function(data){
        $("#table_id").html(data);
    }
});

我的控制器返回搜索结果

<table id="table_id">
    <tbody>
    {% for demande in demandes %}
        <tr>
            <td>{{ demande.did }}</td>
        </tr>
    {% endfor %}
    </tbody>
</table>

提前谢谢

1 个答案:

答案 0 :(得分:2)

您的控制器应输出现成的渲染表。仅将表移动或复制到新的twig文件中。让Controller创建表并将其返回给jQuery:

 /**
 * Lists searched entities.
 *
 * @Route("/search", name="test_search")
 * @Method("GET")
 */
public function searchAction(Request $request)
{
    $query = $em->createQuery(
        'SELECT t
        FROM AppBundle:Test t'
    );
    $categorias = $query->getArrayResult();

    return $this->render('AppBundle:table.html.twig', ['categorias' => $categorias]);
}

然后在您的AJAX请求中,您可以使用控制器中的新表替换该表:

$.ajax({
    url: "{{ path('demande_search') }}",
    type: "GET", 
    data: 'filter='+$("#f").val(),
    success: function(data){
        $("#table_id").replaceWith(data);
    }
});