使用Ajax在WordPress中进行数据插入

时间:2018-08-29 13:32:00

标签: javascript php jquery ajax wordpress

在WordPress中,我正在尝试使用Ajax将数据插入数据库中。

functions.php

function dataInsert(){
    global $wpdb, $slidecount;
    $slidecount = 25;
    $wpdb->insert(
        'custom_table',
        array(
            'slidecount'=> $slidecount
        )
    );
    die();
    return true;
}
add_action('wp_ajax_dataInsert', 'dataInsert');
add_action('wp_ajax_nopriv_dataInsert', 'dataInsert');

JavaScript // 我将insertDataJS函数放在footer.php中

<script>
function insertDataJS(){
   console.log("insertDataJS start");
   jQuery.ajax({
      type: 'POST',
      url: dataInsert.ajaxurl,
      data: {"action": "dataInsert"},
      success: function(data){
           //alert(data);
      }
   });
   console.log("insertDataJS end");
}
</script>

当我尝试调用insertDataJS()函数时,出现以下错误消息:

  

未捕获的ReferenceError:未定义dataInsert       在insertDataJS((index):303)       在HTMLDivElement。 ((索引):444)       在HTMLDivElement.dispatch(jquery.js?ver = 1.12.4:3)       在HTMLDivElement.r.handle(jquery.js?ver = 1.12.4:3)       在Object.trigger(jquery.js?ver = 1.12.4:3)       在n.fn.init.triggerHandler(jquery.js?ver = 1.12.4:3)       在Object.changeTo(在(layerslider.kreaturamedia.jquery.js?ver = 6.7.6:13处评估),   :1:53999)       在Object.eval(在(layerslider.kreaturamedia.jquery.js?ver = 6.7.6:13的eval处),   :1:131795)       在Object.g._callback(greensock.js?ver = 1.19.0:20)       在Object.g.render(greensock.js?ver = 1.19.0:21)

请分享任何想法!

1 个答案:

答案 0 :(得分:0)

正如@Inazo和@Outsource在他们的答案中建议的那样,我通过使用ajaxurl javascript变量引用admin-ajax.php文件来对其进行了改进。我在前端声明了这一点,方法是将以下内容放在主题的footer.php中。

<script type="text/javascript">
    var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
</script>