根据之前select2的选择,使用select2查询数据库

时间:2013-08-28 10:20:23

标签: ajax symfony jquery-select2

我正在研究一个symfony项目(使用Doctrine),我想在其中一个页面上实现交错搜索,例如:

用户在第一个select2框中搜索作者(通过Ajax从DB中提取数据),一旦选择了一个项目,就会出现第二个select2框,名为title,我想只显示属于选定的作者。

这是初始框的控制器端代码(Ajax和控制器)。任何想法如何构建第二个select2的查询?

与初始select2相关的部分,该部分在数据库中查询结果和自动提示的项目:

public function searchAjaxAuthorAction()
{
    $em = $this->getDoctrine()->getManager();

    $term = $this->get('request')->query->get('term');
    $limit = $this->get('request')->query->get('page_limit', 1);

    $rep = $em->getRepository('StephenPersianArtBundle:Main');

    if($term){
        $entities = $rep->createQueryBuilder('m')
            ->where('m.orig_author LIKE ?1')
            ->orderBy('m.orig_author', 'ASC')
            ->setParameter('1','%'.$term.'%')
            ->getQuery();
    }else{
        $entities = $rep->createQueryBuilder('m')
            ->groupBy('m.orig_author')
            ->getQuery();
    }

    $entities = $entities->execute();

    $resultset = array();

    foreach($entities as $entity){
        if($entity->getOrigAuthor()){
            $resultset[] = array(
                //'id' => $entity->getId(),
                'id' => $entity->getOrigAuthor(),
                'text' => $entity->getOrigAuthor()
            );
        }
    }

    $return = json_encode($resultset);//jscon encode the array
    return new Response($return,200,array('Content-Type'=>'application/json'));
}

还有一个与此相关的部分基本上是根据select2中选择的项目将数据加载到表中,但我不认为这与我遇到的问题相关,因为所有这些都发生在最终查询之前完成了。

非常感谢任何帮助!

0 个答案:

没有答案