簡體   English   中英

symfony2:使用ajax將數據發送到控制器

[英]symfony2: sent data with ajax to controller

我在網站的主頁面中有一個輸入,可以幫助人們搜索數據庫中的某些內容,但是我想要這種輸入搜索,例如Facebook搜索欄``ajax搜索'',我嘗試了一些代碼但沒有結果。 我曾使用事件輸入法即時搜索。

我的路由器是

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

}

但是當我運行它時。 我有一個警報錯誤:Error:Not Found

請幫我提前謝謝你


您好,在您的代碼中,我看到您使用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}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM