Задать вопрос
Artur3194
@Artur3194

Отправка статусов запроса в ответ на AJAX запрос?

Доброго времени суток!
Как с PHP отсылать статус выполнения запроса (200 и т.д.)?
Сейчас при моей реализации как бы не обработался запрос - ajax ответ приходит для обработчика "success". При ошибке обработки все равно отрабатывает "success".
function pin_post_function(){
		$postID = $_POST["postID"];
		$postDate = $_POST["postDate"];
		$postTime = $_POST["postTime"];
		if(update_field( 'post_status', 2, $postID ) && update_field( 'post_date', $postDate, $postID ) && update_field( 'post_time', $postTime, $postID )){
			echo(json_encode( array('pinned'=>true, '$postID'=>$postID) ));
		}else{
			echo(json_encode( array('pinned'=>false, '$postID'=>$postID) ));
		}
	    
	    wp_die();
	}
	add_action('wp_ajax_pin_post' , 'pin_post_function');

Функция отправки AJAX запроса
function sendPostAJAX(post_url, data){
	jQuery(function($){
		$.ajax({
			type: "POST",
			url: post_url,
			data: data,
			success: function (response) {
				console.log('Pin master response : ' , response);
			},
			error: function (response) {
				console.log('Error master response : ' , response);
			}
		});
	});
}

Отправка запроса с клиента
$('.free-orders .free-order-pin').on('click', function(event){
	let postId = $(this).attr('data-post-id');
	const data = {
        action : 'pin_post',
        postID: postId
    }
		data.postTime = $('#timeInput').val();
		data.postDate = $('#dateInput').val();
		sendPostAJAX(window.wp_data.ajax_url, data);
});
  • Вопрос задан
  • 92 просмотра
Подписаться 1 Простой 4 комментария
Решения вопроса 1
baskserg
@baskserg
Better skills, better life.
PHP:
...
if(update_field( 'post_status', 2, $postID ) && update_field( 'post_date', $postDate, $postID ) && update_field( 'post_time', $postTime, $postID )){
      echo(json_encode( array('pinned'=>'success', '$postID'=>$postID) ));
    }else{
      echo(json_encode( array('pinned'=>'failure', '$postID'=>$postID) ));
    }
...


JS:
...
 success: function (response) {
       if ("success" == response.pinned) {
         console.log('Pin master response : success');
       } else {
         console.log('Pin master response : failure');
       }
      },
 error: function (response) {
        console.log('Error master response : ' , response);
      }
...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы