0

現在、入力/テキストエリア/チェックボックス/選択が変更されているかどうかを確認しています。変更されている場合は、関数を開始してデータベースを検索し、「結果」divを更新したいと考えています。今、これは私がこれまでに持っているものです..

変更しても問題ありません。唯一の問題は、フォーム項目を変更すると検出されますが、新しい値が .php ファイルに渡されないことです。提案?

: $(this).serialize(); を使用しようとしました。しかし、それは私にはうまくいきませんでした。指定したすべてのフォーム変数を PHP ファイルに渡したいだけです。

$(document).ready(function() { 

    $("select,:checkbox").change(function(){ inits(); });
    $("input,textarea").keystop(function(){ inits(); });

    a = "GET";
    b = "#recipeSearch";
    c = $(b).attr('action') + '?r';
    f = "#searchResults";

    function inits(){

        var values = {
            'term' : $("input#searchterm").val(),
            'photos' : $(b + " #requirephotos").val(),
            'prep' : $(b + " #preptime").val(),
            'cook' : $(b + " #cooktime").val()
        }

        console.log('Search Init');

        $.ajax({
            url: c,
            cache: false,
            dataType: 'json',
            data: values,  // $(b).serialize(); // this still didn't work
            success: function(response) {
                //decoded = JSON.stringify(response);

                if (response) {
                    $(f).html(response);
                }

                //$.each(r.items, function(i,data){} //usage later on 
            },
            error: function(e, jqxhr, settings, exception) {
                console.log('Error: ' + e.toString() + ' - ' + jqxhr);
            }
        });
    }

});

あらゆる提案を歓迎します。キーストップに別のスクリプトを使用するため、jsfiddle はありません。

JSON の例

{
"items": [
        "item 1",
        "item 2",
        "item 3",
        "item 4",
        "item 5"
        ]
}
4

1 に答える 1

0

この問題は解決しました。何が問題だったのかわかりませんが、現在は修正されています。

編集修正は..サーバー側の問題に絞り込むことができたと思います。私が取得していたphpファイルは、リクエストしているファイルがホワイトリストに載っていた場合にのみ情報を提供しましたが、私のファイルはそうではなく、ホワイトリストに追加すると問題が解決しました。

于 2012-10-27T20:37:58.413 に答える