Javascript 使用Ajax在WordPress中插入数据
在WordPress中,我试图使用Ajax将数据插入数据库 functions.phpJavascript 使用Ajax在WordPress中插入数据,javascript,php,jquery,ajax,wordpress,Javascript,Php,Jquery,Ajax,Wordpress,在WordPress中,我试图使用Ajax将数据插入数据库 functions.php function dataInsert(){ global $wpdb, $slidecount; $slidecount = 25; $wpdb->insert( 'custom_table', array( 'slidecount'=> $slidecount ) ); die();
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中
函数insertDataJS(){
log(“insertDataJS start”);
jQuery.ajax({
键入:“POST”,
url:dataInsert.ajaxurl,
数据:{“操作”:“数据插入”},
成功:功能(数据){
//警报(数据);
}
});
log(“insertdatajsend”);
}
当我试图调用insertDataJS()
函数时,我收到以下错误消息:
未捕获引用错误:未定义dataInsert
在insertDataJS((索引):303)
在HTMLDEVELENT。((索引):444)
在htmldevelment.dispatch(jquery.js?ver=1.12.4:3)
位于htmldevelment.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(eval at(layerslider.kreaturamedia.jquery.js?ver=6.7.6:13),
:1:53999)
在Object.eval(eval at(layerslider.kreaturamedia.jquery.js?ver=6.7.6:13),
:1:131795)
在Object.g.\u回调时(greensock.js?ver=1.19.0:20)
在Object.g.render(greensock.js?ver=1.19.0:21)
请分享任何想法 正如@Inazo和@Outsource在他们的回答中所建议的,我通过使用ajaxurl javascript变量引用admin-ajax.php文件解决了这个问题。我在前端声明了这一点,在主题的footer.php中添加了以下内容
<script type="text/javascript">
var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
</script>
var ajaxurl=“”;
您得到了一个很好的回答:事实上,您还没有通过wp\u localize\u脚本wordpress函数在javascript中声明变量dataInsert。最简单的解决方案是将dataInsert.ajaxurl
替换为'
。
<script type="text/javascript">
var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
</script>