0

私のサイトの検索フィールドに問題があります。助けていただければ幸いです。名、姓、住所などの情報とすべての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>

これを少し改善するのを手伝ってくれることを願っています...

4

1 に答える 1

0

このようにしてみてください、それはあなたを助けます。

success: function (clients) {
    $('#clients').html($(clients).filter('#clients').html());
}
于 2013-09-25T09:16:02.743 に答える