2013-09-25 3 views
0

У меня возникла проблема с полем поиска на моем сайте, и я надеюсь, что вы можете мне помочь. Я получил таблицу под названием «Клиенты» с некоторой информацией, такой как имя, фамилия, адрес и т. Д. И все файлы MVC. Для тестирования я использую функцию индекса клиента. В моем файле просмотра у меня есть поле ввода, где я хочу искать клиентов. когда я набираю не менее 4 букв, функция поиска должна автоматически отображать имена клиентов в контейнере div в поле поиска (например, поиск в режиме реального времени Google). В основном это работает, но после первого поиска я получил второй ввод в своих клиентах div и после некоторых поисков он сломается. Я думаю, что мое решение также не подходит для этого. Вот мой код контроллера:Cakephp Ajax Request

public function index($searchterm=NULL) { 

    if ($this->RequestHandler->isAjax()) { 

      $clients=$this->Client->find('list', array(
       'conditions'=>array('LOWER(Client.lname) LIKE \''.$searchterm.'%\''), 
       'limit'=>500 
      )); 

      $this->set('clients', $clients); 
    } 

} 

Вид:

<script type="text/javascript"> 

    $(function() { 
     $("#element", this).keyup(function(event) { 
      if($(this).val().length >= 4) { 
       $.ajax({     
        url: '/clients/index/' + escape($(this).val()), 
        cache: false, 
        type: 'GET', 
        dataType: 'HTML', 
        success: function (clients) { 
         $('#clients').html(clients); 
        } 
       }); 
      } 
     }); 
    }); 
</script> 

<?php echo $this->Form->input('element', array('id'=>'element'));?> 

<div id="clients"> 
<?php 
foreach ($clients as $client) { 
    echo '<br>'; 
    echo $client; 
} 
?> 
</div> 

Я надеюсь, что вы можете помочь мне улучшить это немного ...

ответ

0

Попробуйте, как это, это поможет вам.

success: function (clients) { 
    $('#clients').html($(clients).filter('#clients').html()); 
} 
+0

Дайте мне знать, если у вас есть какие-либо вопросы или проблемы. –