以下代码会产生错误:
注意:wp_enqueue_script被错误地调用。在wp_enqueue_scripts,admin_enqueue_scripts或login_enqueue_scripts挂钩之前,脚本和样式不应注册或排队。该通知是由waitlist_update_call句柄触发的。请参阅WordPress中的调试以获取更多信息。 (此消息是在版本3.3.0中添加的。)位于5225行的/home/food/domains/xyz.com/public_html/wp-includes/functions.php中。
它还在以下控制台中显示错误:POST https://theste.com/wp-admin/admin-ajax.php 400 (Bad Request)
函数文件中的PHP代码
wp_enqueue_script( 'update_call',get_theme_file_uri( '/assets/js/update_call.js' ),array('jquery'),null,true );
wp_localize_script('update_call','my_ajax',array('ajax_url' => admin_url('admin-ajax.php')));
//calls Waitinglist data and creates table
add_action('wp_ajax_function_1','update_function'); // logged in user can make a call
add_action('wp_ajax_nopriv_function_1','update'); // non logged in user can make a call
function update_function() {
global $wpdb;
$results = $wpdb->query( $wpdb->prepare("UPDATE 'my_table_name' SET `currentstatus` =
'myupdate1' WHERE ID = '1'"));
die($results);
}
编辑1:
我试图直接调用它。请原谅。确定下面的拳头解决了入队问题,但POST 400错误仍然存在。错误是
POST https://x.com/wp-admin/admin-ajax.php 400 (Bad Request)
单击应该触发的按钮时,我得到-
Uncaught ReferenceError: update_functionis not defined
at HTMLButtonElement.onclick
我已将函数文件中的PHP更改为:
function my_scripts() {
wp_enqueue_script( 'update_call',array('ajax_url' => admin_url('admin-ajax.php')));
//calls Waitinglist data and creates table
}
add_action('wp_enqueue_scripts','my_scripts');
add_action('wp_ajax_function_1','waitlist_update'); // logged in user can make a call
function waitlist_update() {
global $wpdb;
$results = $wpdb->query( $wpdb->prepare("UPDATE 'wp_wpdatatable_4' SET `currentstatus` =
'myupdate1' WHERE wdt_ID = '1'"));
die($results);
}
单独的JS文件是:
// JavaScript Document
jQuery.ajax({
type: 'post',url: my_ajax.ajax_url,action: 'waitlist_update',success: function(data){
// callback function
}
});
HTML是:
<button class="seat-btn" ID="update" onclick="update_function()">Go!</button>