Добрый день. Возникла проблема с передаваемыми данными в ajax.
Код запроса
function setVote(type_vote, element){
var user_id = $(element).siblings('.current-user-id').val(),
post_id = $(element).siblings('.current-post-id').val();
$.ajax({
url: '/wp-content/themes/theme/include/profile/forms-handler.php',
type: 'POST',
dataType: 'json',
data: {
'user_id': user_id,
'post_id': post_id,
'type_vote': type_vote,
'action': 'vote'
},
success: function(data) {
if(data.result == 'success'){
var count = parseInt(element.find('b').html());
element.find('b').html(count+1);
} else {
alert('Вы уже проголосовали');
}
},
error: function(xhr, textStatus, errorThrown) {
// console.log(data);
}
});
}
$('div.like').click(function(){
setVote('like', $(this));
});
$('div.dislike').click(function(){
setVote('dislike', $(this));
});
Код обработчика
if(isset($_POST['action']) && $_POST['action'] == 'vote'){
$section_wall_data = new sectionWall();
$section_wall_data->setVotedUsers($_POST['post_id'], $_POST['user_id'], $_POST['type_vote']);
}
Код метода из обработчика
function setVotedUsers($post_id, $voted_user_id, $type_vote){
$voted_users_array = $this->getVotedUsers($post_id);
global $wpdb;
if (in_array($voted_user_id.'(+)', $voted_users_array)){
$error = 'Вы уже голосовали';
} else if(in_array($voted_user_id.'(-)', $voted_users_array)){
$error = 'Вы уже голосовали';
} else {
if($type_vote == 'like'){
$field_name = 'likes';
$field_postfix = '(+)';
}
if($type_vote == 'dislike'){
$field_name = 'dislikes';
$field_postfix = '(-)';
}
$wpdb->query('UPDATE my_wall SET voted_users = CONCAT(voted_users, "'.$voted_user_id.$field_postfix.' ") WHERE ID = '.$post_id.'');
$wpdb->query('UPDATE my_wall SET '.$field_name.' = '.$field_name.' +1 WHERE ID = '.$post_id.'');
}
if(!empty($error)){
echo json_encode(array('result' => 'error', 'msg' => $error));
}else{
echo json_encode(array('result' => 'success'));
}
}
Вся беда в том, что в консоли, если посмотреть, все нормально. POST отправляет все, что надо, в ответе сервера сообщения те, которые нужны, то есть обработчик работает правильно.
Например,
JSON:
result: "error"
msg: "Вы уже голосовали".
Но в sucsess ajax запроса data не содержит этот массив, она вообще ничего не содержит. В чем тут может быть проблема, подскажите, пожалуйста