繁体   English   中英

WordPress admin-ajax 返回错误请求 400

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM