BarnyBroken
@BarnyBroken
Дизайнер, веб-разработчик.

Как распознать ошибки РНР при выводе через AJAX?

Всем привет. Ребята, столкнулся с одним движком самописным. Все бы ничего, все шло хорошо, но когда дошел до вывода ошибок через AJAX то столкнулся с проблемой.

Я могу передать текст самой ошибки в result но хотелось бы распознать, это success ошибка или error. Соответственно и подсвечивать другим цветом. Сейчас же и success и error одного вида.

Передаю так:
if(mb_strlen($email) == 0 || mb_strlen($email) == 0){
    TAjaxer::set_format('TEXT');
    TAjaxer::set('Не указан email.');
}


Получаю так:
this.login = function(){
    var values = $('#updateForm').serialize();
        $.ajax('/?module=members&media=ajax&action=login',{
            type: "POST",
            data: values,
            success: function(data) {
                toastr.success(data);
            }
    });
};


Код класса TAjaxer:
<?php

class TAjaxer{
	static $format = null;
	static $content = null;

	static function set_format($format = 'JSON'){
		self::$format = $format;
	}

	static function set($str){
		self::$content = $str;
	}

    static function setFalse($str, $class){
        self::$content = $str;
        self::$content = $class;
    }

	static function get(){
		$return = '';
		if(is_array(self::$content) || strlen(self::$content) > 0){
			switch(self::$format){
				case 'JSON': $return = self::getJSON(); break;
				case 'TEXT': $return = self::$content; break;
				default: $return = self::getJSON();
			}
		}
		return $return;
	}

	static function getJSON(){
		return json_encode(self::$content);
	}
}

?>


Как можно распознать нужную ошибку при выводе AJAX`ом ? Парюсь уже несколько часов, в голову ничего разумного не приходит.
  • Вопрос задан
  • 585 просмотров
Пригласить эксперта
Ответы на вопрос 1
@k2lhu
Добавление error вам подойдет?
this.login = function(){
    var values = $('#updateForm').serialize();
        $.ajax('/?module=members&media=ajax&action=login',{
            type: "POST",
            data: values,
            success: function(data) {
                toastr.success(data);
            }
            error: function () {
                console.log('сработала обработка ошибки');
            }
    });
};


UPD: дополнительно можете проверять какое либо поле на соответствие ожидаемому результату
var dialogName = $('#user').html();
        console.log(dialogName);
        $.ajax ({
            url: '/chat/dialog',
            data: {dialogName: dialogName},
            type: 'GET',
            success: function (res) {
                if(res==1) {'такая то ошибка'} и т.д.
                
            },
            error: function () {
                console.log('сработала обработка ошибки');
            }
        });
    }

т.е. в ответе мы можем ожидать какой идентификатор, который укажет что именно ошибка произошла.
Ответ написан
Ваш ответ на вопрос

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

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