jQuery ajaxPrefilter を次の JS コードで動作させようとしています。ajax 関数を呼び出すために使用するコードを次に示します。
var $setallow = $(".show");
$setallow.click(function() {
var $allow = $(this).closest("form");
var formData = $allow.serialize();
submitForm(formData);
});
function submitForm(formData) {
$.ajax({
type: "POST",
url: "/schedule_update.php",
data: formData,
dataType: "json",
cache: false,
timeout: 8000,
success: function(data, textStatus, jqXHR) {
},
error: function(data, textStatus, errorThrown) {
}
});
};
これが私が使用したいプレフィルターコードです。このコードはExpression Engineによって提供されました。
$.ajaxPrefilter(function(options, originalOptions, jqXHR) {
var old_xid = EE.XID;
jqXHR.setRequestHeader("X-EEXID", old_xid);
jqXHR.complete(function(xhr) {
var new_xid = xhr.getResponseHeader('X-EEXID');
if (new_xid) {
EE.XID = new_xid;
$('input[name="XID"]').filter('[value="'+old_xid+'"]').val(new_xid);
}
});
});
フォームを含む HTML コードを次に示します。
<form>
<input type="hidden" name="XID" value="{XID_HASH}" />
<input type="hidden" name="id" value="1" />
<input type="checkbox" name="allow" value="yes" class="show" />
</form>
このプレフィルターを自分のコードで動作させるにはどうすればよいですか? JS コードの任意の部分にプレフィルターを追加するとすぐに、DB を更新するためにフォームが PHP ページに送信されなくなります。ご協力いただきありがとうございます。