0

Codeigniter で jquery,jquery-ui を使用して検索機能 (オートコンプリート) を実装しようとしていますが、入力フィールドに入力すると「 JSON 解析の予期しない文字エラー」が発生します。

/user/search_userautocomplete/testを呼び出すと、JSON でいくつかの値が返されます。

(警告: HTML ドキュメントの文字エンコーディングが宣言されていません。ドキュメントに US-ASCII 範囲外の文字が含まれている場合、一部のブラウザ構成では文字化けしたテキストが表示されます。ページの文字エンコーディングは、ドキュメントまたは転送プロトコルで。)

Content-Type と何か関係がありますか? 私は本当に最後の数時間立ち往生しています。誰かが私が間違っていることを知っていれば、本当に感謝しています。ありがとう

コントローラ:

// Search User autocomplete
function search_userautocomplete($title)
{
    if(!empty($title) || isset($title))
    {
        $this->db->like('firstname',$title);
        //$this->db->or_like('lastname',$title);

        echo json_encode( $this->db->get('users_profiles')->result() );

    }
}

user_autocomplete.js

$(document).ready(
    function() {

        $('#search').keypress(
                function(e) {

                    if (e.which == 13) {
                        e.preventDefault();
                    }

                    var searched = $('#search').val()

                    var fullurl = $('#hiddenurl').val()
                            + 'user/search_userautocomplete/'
                            + searched;

                    $.getJSON(fullurl, function(result) {
                        var elements = [];
                        $.each(result, function(i, val) {
                            elements.push(val.title)
                        })
                        $('#search').autocomplete({
                            source : elements
                        })

                    })

                })
    })

searchfield_userautocomplete (ビュー)

<div class="row-fluid  tagline">
        <div class="span8">

            <form>

                <label for="search">Search</label> <input id="search" type="text">
                <input value="" id="hiddenurl" type="hidden"> <input
                    value="Submit" type="submit">
            </form>


            <script src="<?php echo base_url();?>js/jquery.js"
                type="text/javascript"></script>
            <script src="<?php echo base_url();?>js/jquery-ui.js"
                type="text/javascript"></script>
            <script src="<?php echo base_url();?>js/user_autocomplete.js"
                type="text/javascript"></script>

        </div>

    </div>
4

1 に答える 1

0

「JSON 解析の予期しない文字エラー」の理由は、getJSON の URL が正しく構成されていない可能性があります。私はそれがなければならないと思います:

var fullurl = $('#hiddenurl').val()
              + '/user/search_userautocomplete/'
              + searched;

文字エンコード エラーについては、次を参照してください。

html ドキュメントで宣言されていない文字エンコーディング

于 2012-08-09T15:08:43.347 に答える