所以我实际上已经阅读过有关这方面的stackoverflow问题,但是对于使用最新版本的wordpress来说它们有点老了 .
我的最终目标是从我的表单向数据库提交一些数据,但是现在ajax响应对我不起作用 . 在WP中自定义页面加载时,所有代码都被加载,因此所有函数都应该起作所有这些都在PHP文件中,现在为什么echo用于创建JS脚本 . 这是我的代码的重要部分
echo '<button id="ZapisPrace">Save</button>
<script>
jQuery("#ZapisPrace").click(function($){
var data={
action: "addToDB",
info: "nomz"
};
jQuery.post(ajaxurl,data,function(response){
alert("Response was "+ response);
});
});
</script>';
add_action('wp_ajax_addToDB','pridajDoDB');
function pridajDoDB(){
echo '<script>console.log("AAA")</script>';
wp_die();
}
使用当前版本的WP,因此变量ajaxurl指向
/wordpress/wp-admin/admin-ajax.php
没有console.log正在发生,响应始终为0,即使我删除了pridajDoDB函数或add_action . 它只是没有正确触发ajax请求 . 有人能让我知道为什么吗?此外,我还没有使用像wp_localize_script,wp_register_script或wp_enqueue_script这样的函数,因为所有这些都在一个加载的PHP文件中,并且我不需要导入jquery,因为我知道WP中的默认值 . 我刚刚学习如何使用WP,PHP AJAX和jQuery,所以我还有很多东西需要学习 .
PS:我应该使用WP方式使用ajax .
2 回答
更改php代码如下 .
好的,所以我没有弄清楚上面的代码是如何工作的,但是我设法让它通过我在网上找到的不同的wp结构工作:
BTW:我在这里使用了onClick函数,但即使用jQuery click事件替换它也能正常工作 .