在jquery脚本中,我有;
jQuery.ajax(
ajaxurl, {
action: \'lu_ajax\',
status: \'enabled\'
},
success: function (a) {
alert(a)
}
在我的文件中。php我有;add_action(\'wp_ajax_lu_ajax\', \'lu_ajax\');
add_action(\'wp_ajax_nopriv_lu_ajax\', \'lu_ajax\'); //for logged users
function lu_ajax() {
if($_GET[\'status\'] != \'\') {
$value = $_GET[\'status\'];
echo $value;
setcookie("status", $value, time()+3600, "/");
}
}
我正在包括文件。主插件中的php,如require\\u once(\'inc/file.php\');但是,没有设置cookie或任何值被回显,请任何人告诉我问题是什么。起初,我遇到的问题是,我直接调用文件,导致wp函数未定义,因此建议我使用ajaxurl,然后使用要执行的操作和要发送给php的变量,但现在什么都没有发生。
另外,jquery和php都在同一个文件中。php我没有单独的js文件,因为它不符合我的目的。
update new issue当我从jquery发出ajax调用时,我会根据条件启动它们,下面是一个示例;
var stat= true;
jQuery.ajax({
type: \'POST\',
url: ajaxurl,
data: {action: \'lu_ajax\', status: \'enabled\'},
success: function (a) {
alert(a)
}
});
} else {
var stat= false;
jQuery.ajax({
type: \'POST\',
url: ajaxurl,
data: {action: \'lu_ajax\', status: \'false\'},
success: function (b) {
alert(b)
}
});
}
然而,cookie总是设置为enabled,这意味着只进行了第一次调用,当我手动将其设置为false进行测试时,问题不在这种情况下。