0

Jqueryのオートコンプリートドキュメントは、少なくとも初心者にとっては少し不足しているようです。良いチュートリアルを求めてネットを調べましたが、見つかりませんでした。

これが私がこれまでに持っているものです:

HTML:

<div id="addfilter">
    <div id="textwrap">
    <form method="POST" class="homeForm" id="homeForm" action="<?php echo base_url() ?>main/add_filter">
        <input type="text" class="text" id="homeText" name="homeText" placeholder="Add Category"></input>
        <input type="image" class="imginput" src="<?php echo base_url() ?>img/board/icons/add.jpg"id="homeSubmit" value="X"></input>
    </form>
    </div>
</div>

JS:

$().ready(function() {
    $("text").autocomplete("search.php", {
        width: 260,
        matchContains: true,
        selectFirst: false
    });
});

検索コントローラー

    public function search()
    {
        $this->thread_model->autocomplete();
    }

オートコンプリートモデル

    public function autocomplete()
    {
        $query = $this->db->query('SELECT tag
            , COUNT(*) as num_items
            FROM filter_thread ft
            INNER JOIN filter f
            ON ft.filter_id = f.filter_id
            GROUP BY tag');
        $tagcloud = $query->result_array();
        foreach ($tagcloud as $tags)
        {
            echo $tags;
        }
    }

'formText'にテキストを入力しても、Firebugは何も表示されません。モデルの出力が正しい形式であるかどうかさえわかりません。どんな助けでもいただければ幸いです!

4

1 に答える 1

2

コントローラとモデルをテストしましたか?

まず、jqueryを修正します。

$(document).ready(function() {
        var url = $("#homeForm").attr("url");
        $("#homeText").autocomplete({
            source: url,
            width: 260,
            matchContains: true,
            selectFirst: false
        });
    });

フォームタグの属性のように、URLを別の方法で提供することをお勧めします。

<form url="<?php echo base_url() ?>main/search" .... >

そして、jQueryでオートコンプリートする前に、そのURLを取得します。

var url = $("#homeForm").attr("url")

次に、オートコンプリートはパラメータで制約を送信しtermます。クエリを次のように調整する必要があります。

'SELECT tag, COUNT(*) as num_items
            FROM filter_thread ft
            INNER JOIN filter f
            ON ft.filter_id = f.filter_id
            WHERE <YOUR_FIELD_HERE> LIKE("%'.$this->db->escape($_POST['term']).'%")
            GROUP BY tag'

私はCodeIgniterにあまり詳しくないので、何かを修正する必要があるかもしれません。

そして最後の(多分)ことは、オートコンプリートがリターンとどのように反応するかを確認することです。

于 2012-05-29T14:04:26.433 に答える