0

ユーザーがビデオ ゲームの名前を入力できるフォームがあります。私がやろうとしているのは、名前と ID の両方が「gameTitle」のフィールドにオートコンプリートを設定することです。オートコンプリートは、「aararity」というデータベース テーブルから「title」というフィールドを取得することです。

このブログのガイドをパラダイムとして使用しました。

まず、オートコンプリートが機能することを知っています。これを含める必要がありconfig/config.php、私はそうします:

$config['csrf_protection'] = FALSE;

私の見解の一番上に、私は持っています:

$(document).ready(function() {
$(function() {
$( "#gameTitle" ).autocomplete({ // the field I want to autocomplete is called gameTitle
source: function(request, response) {
$.ajax({ url: "",
data: { term: $("#gameTitle").val()},
dataType: "json",
type: "POST",
success: function(data){
response(data);
}
});
},
minLength: 2
});
});
});

これが私のコントローラーの「提案」関数です ($row->title で参照される「タイトル」は、取得しようとしているデータベース テーブルの「タイトル」フィールドを参照します)。

function suggestions()
{
            $this->load->model('usergames_model');
            $term = $this->input->post('term',TRUE);

            if (strlen($term) < 2) break;

            $rows = $this->autocomplete_model->GetAutocomplete(array('keyword' => $term));

            $json_array = array();
            foreach ($rows as $row)
            array_push($json_array, $row->title);

            echo json_encode($json_array);
}  

さて、モデルに追加したものは次のとおりです。

function GetAutocomplete($options = array())
{
     $this->db->select('title');
     $this->db->like('title', $options['keyword'], 'after');
     $query = $this->db->get('aararity');
     return $query->result();
}  

基本的に、フォームを実行すると、オートコンプリートはまったくありません。$options[keyword]パラメータに問題があるのではないかと考えています。私は前述のブログからそれをほとんどコピーしましたが、それは著者が使用したあいまいなプレースホルダーである可能性があると推測しています.

私は何が欠けていますか?

4

1 に答える 1

0

OMG、信じられない...私はそれを理解しました...

Suggestions() は、「autocomplete_model」という存在しないモデルを呼び出そうとしていました -- それを「usergames_model」に変更するのを忘れていました!!!!

今では素晴らしく機能します!

于 2013-01-23T18:51:44.650 に答える