Задать вопрос
@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);
?>
  • Вопрос задан
  • 109 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
dataType должен быть JSON.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽