2014-12-03 5 views
0

Я использую zend framwork 2.jquery autocomplete не работает для нескольких результатов

моей функция отлично работает, когда я поймать один результат из моей базы данных .. но когда я использую его для более чем одного результата он не работает

моей функции PHP, который я называю:

public function autocompletesearch() 
{ 

    $name = $_POST["q"] ; 

    $rowset = $this->tableGateway->select(array('name' => $name)); 
    $data = $rowset; 

     $viewModel = new ViewModel(array(
       'data' =>json_encode($data) 
     )); 
     $viewModel->setTerminal(true); 

     return $viewModel; 

} 

и вот мой сценарий:

$("#autocomplete").autocomplete({ 
       delay: 500, 
       minLength: 5, 
       source: function(request, response) { 
        $.get('/modul/autocompletesearch', { q : request.term }, function(data) { 
         response(data.split('\n')); 

        }); 
       } 
      }); 

, когда я поймать одного результата, используя $ rowset-> тока() она отлично работает !!!

любые предложения?

+0

Попробуйте разделить проблему: сначала вы получите несколько результатов, если вы запустите эту функцию «autocompletesearch» вручную. Во-вторых, попробуйте использовать консоль веб-разработчиков в Chrome (F12) и посмотрите, какие данные (если есть) возникают при использовании ajax-ing. И, наконец, вы пробовали другие автозаполнения, и вы уверены, что тот, который вы используете, не является неисправным? – Coreus

+0

спасибо за ответ @bakkelun .. его работа прекрасна, когда я поймаю один результат, используя rowset-> current(), autocompletesearch тоже отлично работает! – SouhailV

+0

Из того, что сказал @bakkelun, вы могли бы разместить здесь значение request.term и ответ от вызова ajax как для одного результата, так и для поиска нескольких результатов? – TotalWipeOut

ответ

0

Просто формализации комментарии в реальный ответ:

Изменить эту строку:

response(data.split('\n')); 

к этому:

response(JSON.parse(data)); 

правильно разобрать ответ в виде JS массива/объекта.