在主插件文件中,我编写了这段代码。
wp_enqueue_script('tihom_ajax', plugins_url( '/js/tihom_ajax.js' , __FILE__ ) , array( 'jquery' ));
wp_localize_script( 'tihom_ajax', 'TihomAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php') ));
function tihom_rating_action()
{
echo "ID is : ".$_POST['id'];
$wpdb->insert('wp_rating', array( 'rating' => (int) $_POST['rating'], 'page_id' => $_POST['id']));
echo "Done";
wp_die();
}
add_action('wp_ajax_the_ajax_hook', 'tihom_rating_action');
add_action('wp_ajax_nopriv_the_ajax_hook', 'tihom_rating_action');
在脚本文件代码中是:
function updateRadioButton(rating){
jQuery.post(TihomAjax.ajaxurl, jQuery("#theForm").serialize(), function(response_from_the_action_function) {
jQuery("#schemarating").html(response_from_the_action_function);
});
}
当我通过搜索控制台检查时,我的代码中没有错误。但是"架构" div更新为" 0"。表示未收到response_from_the_action_function。我无法找到错误。请帮帮我。
答案 0 :(得分:0)
您需要将action
实际分配给ajax request
:所以我们说......
add_action('wp_ajax_SOME', function(){die('42')});
表示当您发送值为'SOME'的查询var动作时,admin-ajax.php将尝试调用此回调。
快速备忘录:nopriv
呼叫前端(非登录用户),另一个呼叫后端(登录用户)。
就个人而言,我多次遇到过这个问题,所有这些都是我的错。我忘了发起请求或传递动作var。因此,有时您需要打开admin-ajax.php并检查收到的变量以解决问题。