带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();
}