2015-03-03 41 views
2

我正在一个Symfony2项目,我有一个用户实体,我需要一个Ajax搜索栏来搜索我的用户。问题是在我的ajax响应中,出于某种原因,控制器返回数据库中的所有用户。symfony2 ajax用户搜索

  1. js。

    $(".loading").hide(); 
        $("#form_recherche").submit(function(){ 
         $(".loading").show(); 
         var motcle = $("#acteurrecherche").val(); 
         var DATA = 'motcle=' + motcle; 
         $.ajax({ 
          type: "POST", 
          url: "{{ path('myapp_acteur_rechercher')}}", 
          data: DATA, 
          cache: false, 
          success: function(data){ 
           $('#resultats_recherche').html(data); 
           $(".loading").hide(); 
          } 
         }); 
         return false; 
        }); 
    
  2. 控制器

    public function rechercherAction() 
    { 
    
    $request = $this->get('request'); 
    
    if($request->isXmlHttpRequest()) 
    { 
        $motcle = ''; 
        $motcle = $request->request->get('motcle'); 
    
        $em = $this->container->get('doctrine')->getEntityManager(); 
    
        if($motcle != '') 
        { 
         $qb = $em->createQueryBuilder(); 
    
         $qb->select('a') 
          ->from('UtilisateursUtilisateursBundle:Utilisateurs', 'a') 
          ->where("a.username LIKE :motcle") 
          ->orderBy('a.username', 'ASC') 
          ->setParameter('motcle', '%'.$motcle.'%'); 
    
         $query = $qb->getQuery(); 
         $acteurs = $query->getResult(); 
        } 
        else { 
         $acteurs = $em->getRepository('UtilisateursUtilisateursBundle:Utilisateurs')->findAll(); 
        } 
    
        return $this->container->get('templating')->renderResponse('CodeRouteBackBundle:Utilisateur:Utilisateurs.html.twig', array(
         "per"=>$acteurs 
        )); 
    } 
    else { 
        return $this->utilisateurAction(); 
    } 
    } 
    

回答

0

确定你是否在控制器后获得的参数值与否。

尝试下面的jQuery代码

$(".loading").hide(); 
$("#form_recherche").submit(function() { 
    var motcle = $("#acteurrecherche").val(); 
    $(".loading").show(); 
    $.ajax({ 
     type: "POST", 
     data: { 
      motcle: motcle 
     }, 
     url: "{{ path('myapp_acteur_rechercher')}}", 
     cache: false, 
     success: function(data) { 
      $('#resultats_recherche').html(data); 
      $(".loading").hide(); 
     } 
    }); 
    return false; 
}); 
+0

它不工作 – MilanoLeader 2015-03-03 08:05:44

+0

它总是返回此 – MilanoLeader 2015-03-03 08:05:56

+0

回报$这个 - >容器 - >获取( '模板') - >的renderResponse('CodeRouteBackBundle:Utilisateur:Utilisateurs .html.twig',array( “per”=> $ acteurs – MilanoLeader 2015-03-03 08:06:10