現在、入力/テキストエリア/チェックボックス/選択が変更されているかどうかを確認しています。変更されている場合は、関数を開始してデータベースを検索し、「結果」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"
]
}