@istrebitel_lgg

Uncaught SyntaxError: Unexpected end of JSON input?

Через ajax обрабатываю запросы.
Проходят все запросы, кроме тех, что обрабатываются базой данных.
Раньше возникала ошибка подключения файла, с ней справился. Теперь возникает ошибка "Unexpected end of JSON input".
Файл js
$( document ).ready(function() {
    $("#do_signup").click(
		function(){
			sendAjaxForm('result_log', 'ajax_form', '../php_action/log.php');
			//sendAjaxForm('result_pas', 'ajax_form', '../php_action/pas.php', 'in_2');
			return false; 
		}
	);
});
 
function sendAjaxForm(result_form, ajax_form, url) {
    $.ajax({
        url:     url, //url страницы (action_ajax_form.php)
        type:     "POST", //метод отправки
        dataType: "html", //формат данных
        data: $("#"+ajax_form).serialize(),  // Сеарилизуем объект
        success: function(response) { //Данные отправлены успешно
        	result = $.parseJSON(response);//<------------ ЗДЕСЬ 35-ая строчка
        	$('#' + result_form).html(result.errors + "<script>border_mistake('in_1');</script>");
    	},
    	error: function(response) { // Данные не отправлены
            $('#' + result_form).html('Ошибка. Данные не отправлены.');
    	}
 	});
}

Файл log.php
<?php
	require "../db.php";

	$data = $_POST;
	$errors = array();

	if( trim($data['login']) == '' ):
	$errors['errors'] = 'Введите логин' ;

	elseif( R::count('users', 'login = ?', array($data['login'])) > 0 ):
	$errors['errors'] = 'Пользователь с таким логином уже существует';

	endif;

	if (!empty($errors)){
	echo json_encode($errors);
	}

?>

В подключаемом файле db.php подключается библиотека RedBeanPHP, с помощью которой и обрабатываются запросы в базу данных, и запускается сессия.
Ошибка из консоли
5ed5da0fe5759293775837.png
И из network
Это обработка запроса " if( trim($data['login']) == '' ): " в log.php (работает нормально)
5ed5da9fe73bc237906210.png
Это обработка запроса "elseif( R::count('users', 'login = ?', array($data['login'])) > 0 ): " в log.php (выдаёт ошибку в консоли)
5ed5daab33df1363358330.png
  • Вопрос задан
  • 5485 просмотров
Решения вопроса 2
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Согласно коду, если пользователь существует - будет ошибка, и будет JSON с этой ошибкой.
А если такой пользователь НЕ существует - будет пустой вывод, вообще без какого-либо JSON, как у вас на втором скриншоте, так? Ну так сделайте какой-нибудь
else:
$errors['success']="Пользователь радостно создан. Аллилуя!";
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
1) sendAjaxForm укажите сразу тип возвращаемого значения json, зачем эти танцы с хтмл который парсится в жсон...
2) Загадка на сообразительность: Если логин есть и пользователя с таким логином нет - что вернет json_encode($errors);?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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