我正在开发一个Symfony2项目,我有一个用户实体,我需要一个ajax搜索栏来搜索我的用户。问题是,在我的ajax响应中,控制器由于某种原因返回数据库中的所有用户。
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;
});
控制器
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 :(得分: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;
});