2015-05-23 5 views
0

У меня есть вход в основной веб-сайт, который помогает людям искать что-то в моей базе данных, но я хочу, чтобы этот входной поиск использовался как панель поиска в Facebook. '' Ajax search '' Я пробовал какой-то код, но без результата. Я использовал ключевое слово для поиска в мгновение.symfony2: отправленные данные с 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(); 

} 

но когда я запустить его. у меня есть предупреждение об ошибке: Ошибка: Не найдено

пожалуйста, помогите мне спасибо заранее

+0

Изменит ли это что-нибудь, если вы добавите 'методы: [POST]' в маршрутизаторе? –

ответ

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} 

Смежные вопросы