symfony2:用ajax将数据发送到控制器

时间:2015-05-23 03:31:15

标签: javascript ajax symfony

我在我的网站主页上有一个输入,可以帮助人们搜索我的数据库中的某些东西,但我想要像Facebook搜索栏这样的输入搜索。''ajax search'' 我尝试了一些代码,但没有结果。我用事件密钥在即时搜索。

我的路由器

acme_estm_site_espace_supr_admin_recuperer_donnes_recherche:
    path: /chercher
    defaults: { _controller: AcmeEstmSiteBundle:Default:recupererdonnesrechercheAction}

这是我的控制者:

  $('#search').keyup(function(key) {
      var rac = $(this).val();

      var data = {
          request: rac
      };

      $.ajax({
          type: "POST",
          url: "{{ path('acme_estm_site_espace_supr_admin_recuperer_donnes_recherche') }}",
          data: data,
          success: function(data, dataType) {
              alert(data);
          },
          error: function(XMLHttpRequest, textStatus, errorThrown) {
              alert('Error : ' + errorThrown);
          }
      })
  });

public function recupererdonnesrechercheAction(Request $request){

     if($this->getRequest()->isXmlHttpRequest()){

         echo "c est une requete ajax";

         $data = $request->request->get('request');
         echo $data;

     }

    return new Response();

}

但是当我跑的时候。我有一个警告错误:错误:未找到

请帮帮我 提前谢谢你

1 个答案:

答案 0 :(得分:0)

您好, 在您的代码中,我看到您使用Request $request as a parameter if($this->getRequest()->isXmlHttpRequest()){ 最后使用$request->request->get('request');

我认为你应该做点什么

public function recupererdonnesrechercheAction(){

     if($this->getRequest()->isXmlHttpRequest()){

         echo "c est une requete ajax";

         $data = $this->getRequest()->request->get('request');
         echo $data;

     }

    return new Response();

}

关于路线,您应该删除"行动"在您的方法名称

acme_estm_site_espace_supr_admin_recuperer_donnes_recherche:
    path: /chercher
    defaults: { _controller: AcmeEstmSiteBundle:Default:recupererdonnesrecherche}