0

カテゴリを含むjqueryオートコンプリートがあります。マウスでクリックすると、その値を持つphpページに送信され、ページが返されます。これはうまくいきます。

ただし、カテゴリを一緒に送信したいです。

これが最初の部分です..

    $( "#tipapp" ).catcomplete({
        delay: 0,
        source: data,
            select: function(event, ui) {
                $("input#tipapp").val(ui.item.label);
                $("#tipapp").submit();
            },
    }).data("catcomplete")._renderItem = function(ul, item) {
                return $("<li></li>").data("item.catcomplete", item).append("<a>" + item.label + "</a>").appendTo(ul);
    };

そしてphpへのフィード:

    $("#tipapp").submit(function() {
        $('#output').load('resultapp.php', {value: $(this).val()}); 
    });

私が読んだことから、次のようなphp行に簡単に追加できると思いました:

$('#output').load('resultapp.php', {value: $(this).val(), cat: item.category});

でも運が悪い、私も変わった

select: function(event, ui, item) {
$("input#tipapp").cat(ui.item.category);

もちろん、運はありません。オートコンプリートやフォームなどで動作するページはたくさんありますが、これはカテゴリに固有のものです.

ここで簡単なものが欠けていますか?アイテムを検索して、呼び出しているphpファイルのカテゴリを取得することもできますが、単純な修正であれば、コードとデータベースへの余分な呼び出しを節約できます。

4

1 に答える 1

0

ui.item.category実際には、アイテムのカテゴリ値が含まれている必要があります。問題は、オブジェクトが最終ハンドラーuiのスコープ内でおそらく未定義であることです。submit()

これを克服するために、次のように、ハンドラーを呼び出す前に入力要素のデータにカテゴリ値を格納できます。

select: function(event, ui) {
    $("input#tipapp").val(ui.item.label).data('category',ui.item.category);
    $("#tipapp").submit();
}

次に、ハンドラーで、次のように入力要素のデータからカテゴリ値を取得できます。

$("#tipapp").submit(function() {
    $('#output').load('resultapp.php', {value: $(this).val(), cat:$(this).data('category')}); 
});
于 2012-12-30T23:50:29.940 に答える