带Symfony3的Ajax
我想动态显示用户列表,但它不起作用。我自己测试了这个查询,它工作得很好,但仍然没有显示任何内容。这是剧本带Symfony3的Ajax,ajax,twig,symfony,Ajax,Twig,Symfony,我想动态显示用户列表,但它不起作用。我自己测试了这个查询,它工作得很好,但仍然没有显示任何内容。这是剧本 <script> function showUser() { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange =
<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>
你的查询不正确。您需要将$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();
}
我不确定这是否能解决所有问题,但至少它能让查询正常工作。我不太清楚你的问题,但看到楼上的朋友说你的查询有问题,所以我想,你可以把控制器,查询做断点调试。然后是误差精度锁定位置。我认为解决这个问题的思路非常普遍。请检查Apache/Nginx/PHP日志中的错误。我不知道你在说什么。我正在wamp服务器上与phpMyAdmin合作。我测试了这个查询,它返回了正确的结果@michail\u wkeep这个SQL注入是个坏主意。你说的@AlainTiemblo是什么意思?你能补充更多细节吗?当然。p.name='.$projectName'。如果我注射'或1-你好那里@AlainTiemblo。我无法提供更好的答案,因为我现在看到OPs代码存在许多问题。不过,我明白你关于SQL注入的观点。对于OPs参考,在searchUsersAction中调用$request->get'projectName',但最好将SocialProjectBundle:Project id值作为参数传递到路由中,然后在Doctrine中查询项目。然后将其作为参数传递给查询。此外,您还应该在searchUsersAction代码中执行所有这些操作,而不是使用单独的函数。但我认为你会从经验中学习。
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();
}
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();
}