[英]WordPress admin-ajax returns bad request 400
在模板文件中,当用户双击并更改表上的记录时,我需要从前端获取新数据。 我进行了测试,控制台显示请求是正确的,但是无论我尝试过什么,admin-Ajax 总是返回错误请求! 模板文件中等待请求的PHP代码为:
add_action( "wp_ajax_update_records", "update_records" );
add_action( "wp_ajax_nopriv_please_login", "please_login" );
function update_records(){
global $wpdb;
$colName = "'" . $_POST['upd_column'] . "'";
$wpdb->update('Reservations',
array(
$colName => $_POST['upd_value']
),
array( 'ReservationID' => $_POST['record_id'] )
);
wp_die();
};
function please_login() {
echo "You must log in to work";
die();
}
发送请求的 jQuery 代码是:
jQuery('#work td').dblclick(
function dolly_script() {
var text = jQuery(this).text();
var headerName = jQuery(this).attr('headers');
jQuery(this).text('');
jQuery('<input />').appendTo(jQuery(this)).val(text).select().blur(
function() {
var newVal = jQuery(this).val();
var selectionID = jQuery(this).closest("tr").children("td[headers='ReservationID']").text();
jQuery(this).parent().text(newVal).find('input').remove();
jQuery.ajax({
url: '../wp-admin/admin-ajax.php',
type: 'POST',
dataType : "json",
data: JSON.stringify({
action: 'update_records',
record_id: selectionID,
upd_column: headerName,
upd_value: newVal
})
})
})
});
我也试过没有 JSON.stringify 和没有数据类型。
在函数文件中,我还添加了:
wp_register_script( 'dolly_script', '/wp-content/themes/bootcms/work.js');
$myAjax = array( 'ajax_url' => admin_url( 'admin-ajax.php' ) );
wp_localize_script( 'dolly_script', 'ajax_url', $myAjax );
wp_enqueue_script( 'dolly_script' );
在“add_action('wp_enqueue_scripts', 'myfunction');”里面宣言。
如果有人可以提供帮助,我将不胜感激,我花了一整天的时间,但没有找到解决方案。
我解决了这个问题。 如果它可以帮助其他人,这是解决方案:
我将PHP 函数移到了 functions.php 文件中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.