我对我的WordPress站点有一个非常简单的AJAX请求。我的PHP函数是一个switch语句,除了我最近添加的一个(change\\u due\\u date)之外,所有其他switch语句都可以工作。
我注释掉了新“case”中的大部分代码,以便更好地找到问题。
AJAX(在页面底部,在我的另一个AJAX请求(有效)下):
function my_ajax() {
var newDate = <?php echo $new_date; ?>;
var data_string = \'action=do_ajax&fn=change_due_date&newDate=\' + newDate;
jQuery.ajax({
type: "POST",
url: \'/wp-admin/admin-ajax.php\',
data: data_string,
dataType: \'JSON\',
success: function(data){
// alert(data);
console.log("success!");
},
error: function(errorThrown){
console.log("error!");
}
});
} // end of my_ajax function
jQuery(\'a.test\').click(function(){
my_ajax();
});
</script>
起初,我尝试只发送“newDate”作为我的“data”值,这确实有效(就像AJAX返回的“success!”)。在这种情况下,我的PHP函数仍然没有运行,因为它没有被调用。我怀疑我在AJAX方面的格式有问题。。。
现在,当我发送“data\\u string”作为我的数据时,我得到了一个AJAX错误。。。
PHP函数:
switch($_POST[\'fn\']){ ...
/* AUTOMATE DUE DATE CREATION - made by Alex */
case \'change_due_date\' :
/*$field_key = "field_515b2428887d7"; // Key ID for field
$new_date = $_POST[\'newDate\']; // new date
$new_due_date = DateTime::createFromFormat(\'Ymd\', $new_date);
$new_due_date->format(\'Ymd\'); // formatting */
echo (\'<h1>functioning</h1>\'); // testing purposes
/*$parent_field = get_field($field_key); // Select parent field
foreach($parent_field as $sub_row) :
// Change value of sub-fields
$sub_row[\'date_due\'] = $new_due_date;
$new_values[] = $sub_row; // Load new values into array
endforeach;
update_field( $field_key, $new_values ); // Update ACF*/
$output = "Successfully updated due dates."; // testing
break;
... }
我已经在这段代码上工作了几天-我承认我在AJAX方面不是最好的。。。但我似乎找不到问题所在?我已经查看了WP Codex,以获得有关如何构建AJAX的指导。