Php AJAX Wordpress插件
我在自定义帖子类型页面上有一个完整/完成按钮 它可以工作,当有人单击按钮时,它会将正确的数据发送到数据库,并添加完成标记,但我想将其转换到ajax,但按钮本身不会发送任何数据。我根据帖子类型和用户id发送到服务器。我正试图弄明白这一点 在single.php中Php AJAX Wordpress插件,php,ajax,wordpress,Php,Ajax,Wordpress,我在自定义帖子类型页面上有一个完整/完成按钮 它可以工作,当有人单击按钮时,它会将正确的数据发送到数据库,并添加完成标记,但我想将其转换到ajax,但按钮本身不会发送任何数据。我根据帖子类型和用户id发送到服务器。我正试图弄明白这一点 在single.php中 <form action='' method="post" class='comp-btn'> <input class='workout-submit' id="workout-submit"type='subm
<form action='' method="post" class='comp-btn'>
<input class='workout-submit' id="workout-submit"type='submit' name='complete' value='Complete'/>
</form>
TLDR:我有一个post请求(有效),我想将其转换为AJAX调用。因为我不希望每次有人点击“完成”按钮时都重新加载 因为您使用的是Wordpress,所以AJAX最适合将数据发送到functions.php 首先,在html/js文件中:
$('.comp-btn').on('submit', function(){
$.ajax({
type: 'POST',
url: "../../../../wp-admin/admin-ajax.php",
data: {'action':'sendworkout','complete':$('.workout-submit').val()},
success: function(response){
console.log(response); // shows 'success'
// do things here
}
});
});
其次,在WP functions.php中
add_action('wp_ajax_sendworkout', 'sendworkout');
add_action('wp_ajax_nopriv_sendworkout', 'sendworkout');
function sendworkout(){
$workoutcomplete = $_POST['complete'];
if($workoutcomplete){
//DB insert here
}
wp_send_json_success('success');
}
请注意,ajax语法中的“action”指的是functions.php中的函数名,“complete”指的是functions.php中的$_POST['complete']?
add_action('wp_ajax_sendworkout', 'sendworkout');
add_action('wp_ajax_nopriv_sendworkout', 'sendworkout');
function sendworkout(){
$workoutcomplete = $_POST['complete'];
if($workoutcomplete){
//DB insert here
}
wp_send_json_success('success');
}