私のサイトの検索フィールドに問題があります。助けていただければ幸いです。名、姓、住所などの情報とすべてのMVCファイルを含む「クライアント」というテーブルを取得しました。テストのために、クライアント インデックス関数を使用します。ビュー ファイルには、クライアントを検索するための入力フィールドがあります。少なくとも 4 文字を入力すると、検索機能により、検索フィールドの下の div コンテナーにクライアント名が自動的に表示されます (Google インスタント検索のように)。基本的には機能していますが、最初の検索の後、クライアントの div で 2 番目の入力を取得し、いくつかの検索の後に壊れます。私の解決策もこれを行う正しい方法ではないと思います。ここに私のコントローラコードがあります:
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>
これを少し改善するのを手伝ってくれることを願っています...