我已经在这个问题上挣扎了很长一段时间了.我有一个主题的选项页面,并注册了一个选项.
我每次用户按下保存按钮时都试图通过ajax更新选项,这是我的代码.
JS:
function save_main_options_ajax() {
$('.main-options-form').submit( function () {
var b = $(this).serialize(),
optdata = { action : "wp_ajax_main_options_save", data: b };
$.post( ajaxurl, b, function (response) {
if (response == 1 ) { alert('sucess'); }
else { alert(optdata);}
});
return false;
});
}
save_main_options_ajax();
Run Code Online (Sandbox Code Playgroud)
PHP:
function main_options_save_ajax() {
check_ajax_referer('_wpnonce', '_wpnonce' );
$data = $_POST;
unset($data['option_page'], $data['action'], $data['_wpnonce'], $data['_wp_http_referer']);
if ( update_option('main_options', $data ) )
{ die(1); }
else { die (0); }
}
add_action('wp_ajax_main_options_save', 'main_options_save_ajax' );
Run Code Online (Sandbox Code Playgroud)
我在firebug中看到的响应是0.我不知道我在这里缺少什么,我尝试了一些变化,但似乎没有任何工作.
我在jQuery中遇到'if else if'函数的问题.根本没有检测到我的代码的最后两个语句,所以当我希望加载页面时没有任何反应.有人知道这有什么问题吗?
function pageloader() {
var position = $('#slideInner').css('marginLeft');
if (position >= '-936px') {
// load the page contents
$('#blogs').load('pagetwo.html #blog');
// hide the loading box
loadoff();
$('#portfolio').empty();
}
else if (position = '-1872px') {
$('#portfolio').load('pagethree.html #homepage');
loadoff();
$('#blogs').empty();
}
else if (position = '-2808px') {
$('#contact').load('pagefour.html #homepage');
// hide the loading box
loadoff();
}
else {
alert('all posibilities exausted');
}
}
Run Code Online (Sandbox Code Playgroud)