symfony2 ajax 用户搜索
symfony2 ajax user search
我正在做一个 Symfony2 项目,我有一个用户实体,我需要一个 ajax 搜索栏来搜索我的用户。问题是在我的 ajax 响应中控制器出于某种原因 returns 来自数据库的所有用户。
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();
}
}
检查您是否在控制器中获取 post 参数值。
试试下面的 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;
});
我正在做一个 Symfony2 项目,我有一个用户实体,我需要一个 ajax 搜索栏来搜索我的用户。问题是在我的 ajax 响应中控制器出于某种原因 returns 来自数据库的所有用户。
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(); } }
检查您是否在控制器中获取 post 参数值。
试试下面的 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;
});