При передачи данных php через ajax не выводит проверку на ошибки

При передачи данных php через ajax не выводит проверку на ошибки,если поля ввода не заполнены.Просто ичего не происходит при нажатии на кнопку регистрации.Пробовал делать проверку через isset,не помогло.Без использования ajax,работает корректно. Прошу прощения,если код кого-то смутит,я только учусь этим заниматься.Спасибо! Форма регистрации

<form  action="" method="post">
  <label for="username">Ваше имя</label>
  <input type="text" name="username" id="username" class="form-control">

  <label for="email">Email</label>
  <input type="email" name="email" id="email" class="form-control">

  <label for="login">Логин</label>
  <input type="text" name="login" id="login" class="form-control">

  <label for="pass">Пароль</label>
  <input type="password" name="pass" id="pass" class="form-control">

<div class="alert alert-danger mt-2" id="block"></div>
  <button type="button" class="btn btn-success mt-5">
    Зарегистрироваться
  </button>
</div>
<?php require 'blocks/aside.php'; ?>


</main>
<?php require 'blocks/footer.php'; ?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
// передаем данные через аякс по ид форм
$('#reg_user').click(function (){
  var name = $('#username').val();
  var name = $('#email').val();
  var name = $('#login').val();
  var name = $('#pass').val();
  $.ajax({
    url:'reg/registr.php',
    type:'POST',
 
  data:{'username':name,'email':email,'login':login,'pass':pass},

success: function(data=='Готово'){
  $('#reg_user').text('Все готово');
  $('#block').hide();
  else {
    $('#block').show();
    $('#block').text(data);

   
  }
}
  });
});

Здесь сама обработка

<?   
  $username = trim(filter_var($_POST['username'], FILTER_SANITIZE_STRING));
$email = trim(filter_var($_POST['email'], FILTER_SANITIZE_EMAIL));
$login = trim(filter_var($_POST['login'], FILTER_SANITIZE_STRING));
$pass = trim(filter_var($_POST['pass'], FILTER_SANITIZE_STRING));     

$error = '';
if (strlen( $username ) <= 3)
$error = 'Введите имя';
  
  elseif (strlen($email) <=3)

$error = 'Введите мыло';
  elseif (strlen($login) <=3)

$error = 'Введите логин';
  elseif (strlen($pass) <=3)

$error = 'Введите пароль';

if ($error !=''){
  echo $error;
  exit();
}



echo 'Готово';

Ответы (2 шт):

Автор решения: Кирилл

Вероятно ваши данные уходят в формате json, которые не парсятся автоматически в суперглобальную переменную $_POST.

Попробуйте следующее:

$data = json_decode(file_get_contents('php://input'), true);

$username = trim(filter_var($data['username'], FILTER_SANITIZE_STRING));
$email = trim(filter_var($data['email'], FILTER_SANITIZE_EMAIL));
$login = trim(filter_var($data['login'], FILTER_SANITIZE_STRING));
$pass = trim(filter_var($data['pass'], FILTER_SANITIZE_STRING));
...     
→ Ссылка
Автор решения: Николай

Подготовил для Вас универсальный код. Всё что нужно - это задать действия кнопки и передачу нужных данных. Попробуйте детальнее изучить данный код и не совершать подобных ошибок

<form id="myForm"  action="" method="post">
<label for="username">Ваше имя</label>
<input type="text" name="username" id="username" class="form-control">

<label for="email">Email</label>
<input type="email" name="email" id="email" class="form-control">

<label for="login">Логин</label>
<input type="text" name="login" id="login" class="form-control">

<label for="pass">Пароль</label>
<input type="password" name="pass" id="pass" class="form-control">

<div class="alert alert-danger mt-2" id="block"></div>
<button id="reg_user" type="button" class="btn btn-success mt-5">
    Зарегистрироваться
</button>
</form>
<?php #require 'blocks/aside.php'; ?>
<?php #require 'blocks/footer.php'; ?>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
    // передаем данные через аякс по ид форм
    $(document).ready(function() {
        $("#reg_user").click( // считываем клик определённой кнопки
            function() {
                sendAjaxForm('block', 'myForm', 'reg/registr.php', this.id); // Передача указателей
                return false;
            }
        );
    });

    function sendAjaxForm(result_form, form1, url, butcli) { // Функция обработки
        $.ajax({
            url: url, //url страницы
            type: "POST", //метод отправки
            data: $("#" + form1).serialize(), // Сеарилизуем объект
            success: function(data){ // Данные отправлены
                if(data=='Готово'){
                    $('#'+result_form).text('Все готово');
                    $('#'+butcli).hide();
                } else {
                    $('#'+result_form).text(data);
                }
            },
            error: function(response) { // Данные не отправлены
                alert('Ошибка. Данные не отправлены.');
            }
        });
    }

</script>
→ Ссылка