【发布时间】:2021-02-12 17:09:22
【问题描述】:
我将不胜感激。我正在尝试通过 wordpress 函数文件(所有代码在一个地方)创建一个保存书签插件。问题是我无法让 ajax、jquery 工作我不确定它的哪一部分不工作。你点击链接,它会调用ajax,然后是php,它将post_id、user_id保存到数据库中。
这是代码(functions.php):
echo '<a href="#bookmark" class="bookmark">Bookmark</a>';
add_action('admin_head', 'bookmark_add');
function bookmark_add() { ?>
<script type="text/javascript">
jQuery(document).ready(function($) {
$(document).on('click', '.bookmark', function(){
console.log('bookmark_save_TEST');
var data = {
'action': 'bookmark_save',
'user_id': 1234,
'post_id': 3049291
};
// since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
jQuery.post(bookmark_save.ajax_url, data, function(response) {
alert('Got this from the server: ' + response);
});
});
</script> <?php
}
add_action( 'wp_ajax_bookmark_save', 'bookmark_save_callback' );
function bookmark_save_callback() {
global $wpdb;
$user_id = intval( $_POST['user_id'] );
$post_id = intval( $_POST['post_id'] );
$post_id += 10;
echo $post_id;
// once the code above works, will uncomment this to add into the database.
//$sql = $wpdb->query("INSERT INTO {$wpdb->prefix}wp_bookmarks(`user_id`,`post_id`) VALUES (%s, %d)", $user_id, $post_id);
exit();
}
谁能告诉我是什么一直出错?
【问题讨论】:
-
检查浏览器控制台是否有任何错误。
-
您还必须提供 ajax_url
-
@vanurag 我在浏览器控制台中根本没有收到任何错误,这就是它让它变得更加困难的原因。如何提供 ajax_url?另外,如果我使用 ajaxurl 会更好吗?所有代码都在一个文件中。
标签: javascript php jquery ajax wordpress