我想动态显示用户列表,但是不起作用。我自己测试了查询,它可以正常工作,但仍然不显示任何内容。这是脚本
<script>
function showUser() {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("user-list-div").innerHTML = xmlhttp.responseText;
}
};
xmlhttp.open("GET","{{ path('ajax_update')}}",true);
xmlhttp.send();
}
</script>
这是控制器操作:
public function searchUsersAction(Request $request)
{
/*$em = $this->getDoctrine()->getManager();
$request = $this->get('request');*/
$projectName = $request->get('projectName');
echo($projectName);
//$projectId=$this->getDoctrine()->getRepository('SocialProMeetingBundle:meetingUser')->findName($projectName);
//echo(count($projectId));
//foreach($projectId as $pId) {
//$projectId->getPId();
$pus = $this->getDoctrine()->getRepository('SocialProMeetingBundle:meetingUser')->findProjectUsers($projectName);
//}
$response = "<select class=\"select2_multiple form-control\" multiple=\"multiple\">";
foreach($pus as $user){
$response . "<option>" . $user . "</option>";
}
$response = $response."</select> ";
return new Response($response);
//return($pus);
//call repository function
}
这是查询
public function findProjectUsers($projectName){
$query=$this->getEntityManager()
->createQuery(
"SELECT u.firstName FROM SocialProDefaultBundle:User u, SocialProProjectBundle:Project p, SocialProProjectBundle:ProjectUser pu WHERE u.id = pu.user AND p.id=pu.project AND p.name='$projectName'");
return $query->getResult();
}
您的查询不正确。您需要像这样连接$ projectName:
public function findProjectUsers($projectName){
$query=$this->getEntityManager()
->createQuery(
"SELECT u.firstName
FROM SocialProDefaultBundle:User u,
SocialProProjectBundle:Project p,
SocialProProjectBundle:ProjectUser pu
WHERE u.id = pu.user AND p.id=pu.project AND p.name=:name"
)->setParameter('name', $projectName);
return $query->getResult();
}
我不确定这是否可以解决所有问题,但至少可以使查询正常工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句