php
  • jquery
  • ajax
  • symfony
  • 2016-11-24 48 views 2 likes 
    2

    我想爲每列創建一個帶有搜索字段的表格。我使用ajax向控制器發送搜索值。Symfony:帶有ajax的表格上的搜索字段

    我的問題是我不知道,必須返回控制器(HTML或JSON),以及如何在我的樹枝表中顯示的結果結果的類型

    我的JS功能:

    $.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> 
    

    我控制器返回搜索結果

    <?php 
        /** 
        * 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(); 
    
         $response = new Response(json_encode($categorias)); 
         $response->headers->set('Content-Type', 'application/json'); 
    
         return $response; 
        } 
    

    預先感謝您

    +0

    你應該看看到[數據表插件](https://www.google.fr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjji46Ty8HQAhVFPxoKHaKzBskQFggbMAA&url=https%3A%2F%2Fdatatables.net%2F&usg=AFQjCNHbqIifnbX1B1RAxJoziQ5plrvDAQ&sig2= oqZ1GZZktKLbLEcDEtHq8w&bvm = bv.139782543,d.d2s) – OlivierC

    回答

    1

    您的控制器應該輸出就緒呈現表。移動或僅將表格複製到新的樹枝文件中。讓控制器創建表,並給它回的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); 
        } 
    }); 
    
    +0

    不要在table.html.twig中擴展任何其他模板 – Rawburner

    相關問題