Wordpress前端插件错误与ajax调用响应从动作函数

时间:2018-01-24 17:18:56

标签: php jquery ajax wordpress

在主插件文件中,我编写了这段代码。

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。我无法找到错误。请帮帮我。

1 个答案:

答案 0 :(得分:0)

您需要将action实际分配给ajax request:所以我们说......

add_action('wp_ajax_SOME', function(){die('42')});

表示当您发送值为'SOME'的查询var动作时,admin-ajax.php将尝试调用此回调。

快速备忘录:nopriv呼叫前端(非登录用户),另一个呼叫后端(登录用户)。

就个人而言,我多次遇到过这个问题,所有这些都是我的错。我忘了发起请求或传递动作var。因此,有时您需要打开admin-ajax.php并检查收到的变量以解决问题。