【发布时间】:2017-08-23 09:33:28
【问题描述】:
所以我实际上已经阅读了有关此问题的 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。
【问题讨论】:
-
按钮在表单内吗?如果是这样,它会在您单击它时提交 from,因为 type=submit 是默认值。使用 type=button,或在处理函数中显式阻止事件默认操作。
-
试图在表单内外使用它,它确实触发了jQuery但是jQuery由于某种原因没有触发addToDB,
标签: javascript php jquery ajax wordpress