Ajax запрос в снипет

Привет всем. Подскажите как сделать отправку данных из формы через ajax чтобы получить ответ и вывести ответ.
Делаю регистрацию через простую форму. Но почему то js не видит ответ от сервера. Снипет вызываю на этой же странице где и форма.
А если указать прямой путь до файла php не происходит регистрация.

Скрипт:
<script>
$(document).ready(function() {
	$("#add_users").on("submit", function () {
		$.ajax({

			url: document.location.href,
			method: "post",

			data: {
				add_users: "1",
				user_name: $("#user_name").val(),
				user_email: $("#user_email").val()
			},
			success: function (data) {
				if (data == "error_name") {
					notyf.error('[[++cultureKey:is=`uk`:then=`Заповніть поля`]][[++cultureKey:is=`ru`:then=`Заполните поля`]]');
				}
				if (data == "error_email") {
					notyf.error('[[++cultureKey:is=`uk`:then=`Заповніть поля`]][[++cultureKey:is=`ru`:then=`Заполните поля`]]');
				}
				if (data == "users_error") {
					notyf.error('[[++cultureKey:is=`uk`:then=`Даний користувач вже існує`]][[++cultureKey:is=`ru`:then=`Данный пользователь уже существует`]]');
				}
				if (data == "users_ok") {
					notyf.error('[[++cultureKey:is=`uk`:then=`Користувач доданий`]][[++cultureKey:is=`ru`:then=`Пользователь добавлен`]]');
				}

			},
			error: function () {
				alert(data);
			}

	
		return false;
	});
});
</script>
Снипет:
<?php
if ($_POST['add_users'] == "1")
{
	if (empty($_POST['user_name']))
		{
			echo "error_name";
		}
	elseif (empty($_POST['user_email']))
		{
			echo "error_email";
		}
		else {
//Получаем данные с полей
$name = $_POST['user_name'];
$email = $_POST['user_email'];

// получаем объект класса modUser
    $user = $modx->getObject('modUser', array(
        'username' => $email
    ));
    // если пользователя нет на сайте
    if (!is_object($user))
    {
        //создаем объект пользователя
        $user = $modx->newObject('modUser');
        // устанавливаем имя и пароль
        $user->set('username', $email);

        //Генерация уникального пароля
        $password_generation = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
        $password = substr(str_shuffle($password_generation) , 0, 32);
        $user->set('password', $password);

        //Создаем объект профиля пользователя
        $profile = $modx->newObject('modUserProfile');

        // заполняем профиль данными
        $profile->set('fullname', $name);
        $profile->set('email', $email);
        $profile->set('phone', '22-22-22');
        $profile->set('mobilephone', '+79057778899');
        $profile->set('fax', '33-33-33');
        $profile->set('address', 'г. Москва, ул. Ломоносова д. 31');
        $profile->set('city', 'Москва');
        $profile->set('state', 'Московская область');
        $profile->set('zip', '101000');
        $profile->set('country', 'Россия');
        $profile->set('website', 'www.yandex.ru');
        $profile->set('photo', 'assets/images/myphoto.jpg');
        $profile->set('comment', 'Создаю сайты');
        $profile->set('dob', strtotime('1984-12-12'));
        $profile->set('gender', '1');

        //получаем доступ к дополнительным полям
        $fields = $profile->get('extended');

        // добавляем данные в массив
        $fields['bank'] = 'Сбербанк';
        $fields['account'] = '40702810500000000001';
        $fields['kor-account'] = '3010100000000000001';
        $fields['bik'] = '045805777';

        // добавляем данные к профилю
        $profile->set('extended', $fields);
        // осуществляем связь modUser с modUserProfile
        $user->addOne($profile);

        // сохраняем оба объекта
        $profile->save();
        $user->save();

        //
        echo "users_ok";

        //Отправка данных пользователю
        ini_set('display_errors', 1);
        error_reporting(E_ALL);
        $from = "";
        $to = $email;
        $subject = "Checking PHP mail";
        $message = "<p>Login: " . $email . "</p></br><p>Password: " . $password . "</p>";
        $headers = "From:" . $from;
        mail($to, $subject, $message, $headers);
    }
    else
    {
        echo "users_error";
    }

}
}
Сергій
29 сентября 2021, 23:06
modx.pro
2
437
0
Поблагодарить автора Отправить деньги

Комментарии: 4

Станислав
29 сентября 2021, 23:16
+1
попробуй в запрос ajax вставить dataType: 'html'
    Сергій
    29 сентября 2021, 23:19
    0
    Спасибо за ответ.
    Пробовал. Ответ то приходит. Но почему то JS его не видит.
      Станислав
      29 сентября 2021, 23:30
      0
      console.log(data)
        Сергій
        29 сентября 2021, 23:54
        0
        Короче я баран, инфа 100%. Нужно было после вывода echo поставить exit();. А то мне верталась вся страница в ответе и само собой что ничего не работало. Спасибо что заставил меня логично посмотреть на свой же код.
        Если кому то нужно юзайте мой код для добавления пользователей.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    4