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

Как использовать асинхронные запросы в связке Ajax + PHP?

Здравствуйте, у меня на странице есть форма, которая имеет 4 поля (фио, номер, почта, инн орг). Мне необходимо использовать асинхронный запросы для связи клиент/сервер, главная задача проверить на стороне сервера существует такой инн или нет. Для этого можно обращаться к сайте егрюл или любому другому.
Проблема в чем, отдельно функция проверки работает прекрасно, но как только я проверяю работу формы(по нажатию на кнопку), ничего в ответ не приходит( Если убрать эту функцию, где происходит запрос проверки инн, то в ajax ответ приходит.
Можете помочь, пожалуйста, я новичок и пока не нашел ответа(

<script>
    $( document ).ready(function() {
      $('#send_data').click(function() {
        $.ajax({
            url:     '/netcat_template/class/feedcall/feedback.php',
            type:     "POST", //метод отправки
            dataType: "html", //формат данных
            data: $("#feedback-form").serialize()
         }).then((res) => {
                result = $.parseJSON(res);
                if (!result['fullname'])
                    alert('Введетие ФИО в формате ФАМИЛИЯ ИМЯ ОТЧЕСТВО!')
                if (!result['phone'])
                    alert('Номер должен содержать 11 цифр и начинаться с 7/8');
                if (!result['email'])
                    alert('Кажется email введен не верно :(')
                if (!result['inn'])
                    alert('Такой организации не существует или ИНН введен неверно :(')
                alert(result['inn'])
         });
      });
    });    
</script>

Код пхп
<?php
	$fullname = trim($_POST["fullname"]);
	$phone = $_POST["phone"];
	$email = $_POST["email"];
	$inn = $_POST["inn"];
	
	$result = array();
	
	function check_inn($in) {
		$key='------';
		$data_json = json_encode(file_get_contents("https://api-fns.ru/api/egr?req=".$in."&key=".$key), JSON_UNESCAPED_UNICODE); //ТУТ ПРИХОДИТ ПУСТОЙ МАССИВ, если нет такого инн
		if ($data_json != '"{}"')
			return true;
		return false;
	}
	
	$result["fullname"] = (count(explode(' ', $fullname)) == 3) ? true : false;
	$result["phone"] = (strlen($phone) == 11) ? true : false;
	$result["email"] = (strpos($email, '@') && strpos($email, '.')) ? true : false;
	//$result["inn"] = $inn;
	$result["inn"] = check_inn($inn);
	
	
	
	echo json_encode($result);
?>
  • Вопрос задан
  • 104 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
dataType должен быть JSON.
Ответ написан
Ваш ответ на вопрос

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

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