嗨那里我想使用一些WordPress的AJAX我的第一个AJAX请求工作正常,但第二个没有。有人能告诉我为什么发生这种情况第二个WordPress的Ajax没有发射
正常工作:
PHP
//Add Students Details to DB
add_action('wp_ajax_my_action', 'my_action_callback');
function my_action_callback() {
\t $fName = $_POST['fName'];
\t $lName = $_POST['lName'];
\t $dob = $_POST['dob'];
\t $gender = $_POST['gender'];
\t $diet = $_POST['diet'];
\t $current_id = get_current_user_id();
\t global $wpdb;
\t $result = $wpdb->insert(
\t \t 'wp_students',
\t \t array(
\t \t \t 'ID' => NULL,
\t \t \t 'first_name' => $fName,
\t \t \t 'last_name' => $lName,
\t \t \t 'birthdate' => $dob,
\t \t \t 'gender' => $gender,
\t \t \t 'dietary_requirements' => $diet,
\t \t \t 'user_id' => $current_id
\t \t)
\t);
\t echo json_encode($result);
\t wp_die();
}
JS
var data_value = {
action: 'my_action',
fName: $(acc[i]).find('input.fName').val(),
lName: $(acc[i]).find('input.lName').val(),
dob: $(acc[i]).find('input.dob').val(),
gender: $(acc[i]).find('select.gender').val(),
diet: $(acc[i]).find('textarea.diet_req').val()
};
$.ajax({
type: "post",
dataType: "json",
url: my_ajax_object.ajax_url,
data: data_value,
success: function(msg) {
if (msg == false) {
$('#insert_status').html('<strong><span style="color: red;">Error: </span></strong>Details Have Not Been Updated');
return false;
}
},
error: function(xhr, status, error) {
var i = JSON.parse(xhr.responseText)
alert(i.Message);
}
});
不起作用:
PHP
//Delete Students Details
add_action('wp_ajax_my_delete', 'my_action_callback_delete');
function my_action_callback_delete() {
\t echo 'here';
\t global $wpdb;
\t $result = $wpdb->delete('wp_students', array('usesr_id' => get_current_user_id()));
\t echo json_encode($result);
\t wp_die();
}
JS
var value = {
action: 'my_delete'
};
$.ajax({
type: "post",
dataType: "json",
url: my_ajax_object.ajax_url,
data: value,
success: function(msg) {
if (msg == false) {
$('#insert_status').html('<strong><span style="color: red;">Error: </span></strong>Details Have Not Been Updated');
return false;
}
},
error: function(xhr, status, error) {
var i = JSON.parse(xhr.responseText)
alert(i.Message);
}
});
如果你能帮助我将是巨大的。 WordPress的Ajax不像一般的Ajax那样简单。
你得到任何respons?像0或-1?你是否只为登录用户发起请求?尝试检查https://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_(action),看看你是否正确的做法 – silver
嘿@silver我跟着wordpress codex。我根本没有收到任何回应,这很奇怪。 –
您是否正在运行未登录用户的代码?你尝试添加ajax钩子为未登录的请求'''add_action('wp_ajax_nopriv_my_delete','my_action_callback_delete');''' 如果仍然无效,那么问题是在你的js代码。 – silver