XdHideoAppa
@XdHideoAppa

Как отправить post запрос redbean php с помощью ajax?

Нужна помощь! В душе не знаю(***) как отправить данные в БД через ajax. (Не могу разобраться уже 3 дня). В коде, который я сейчас прикрепил ниже, мне почему-то выводит при нажатии на submit всю разметку страницы в alert (но нам то надо что-бы оно отправляло данные в бд). Помогите, молю!

PHP
<?php
    $data = $_POST;
    if( isset($data['do_signup']) )
    {
        // Здесь регистрируем!
        $errors = array();
        
        if( empty($errors) )
        {
            // Всё хорошо, можно регистрировать!
            $user = R::dispense('users');
            $user->login = $data['login'];
            $user->email = $data['email'];
            $user->password = password_hash($data['password'], PASSWORD_DEFAULT);
            R::store($user);

            echo '<p class="accept-cont">Вы успешно зарегистрированы!</p>';
        }
    }
?>
                    <form action="/login" method="POST" class="form-signup" id="form_do_signup">
                        <h1>Регистрация</h1>
                        <label>
                            <input type="text" name="login" placeholder="Логин" value="<?php echo @$data['login']; ?>">
                        </label>
                        <label>
                            <input type="email" name="email" placeholder="Email" value="<?php echo @$data['email']; ?>">
                        </label>
                        <label>
                            <input type="password" name="password" placeholder="Пароль" value="<?php echo @$data['password']; ?>">
                        </label>
                        <label>
                            <input type="password" name="password_2" placeholder="Повторный пароль" value="<?php echo @$data['password_2']; ?>">
                        </label>
                        <?php
                            if( ! empty($errors) )
                            {
                                echo '<p class="errors-cont" style="margin-top: 18px;">'.array_shift($errors).'</p>';
                            }
                        ?>
                        <button type="submit" class="submit-reg" name="do_signup">Зарегистрироваться</button></button>
                    </form>


Нерабочий Ajax:
$(document).ready(function() {
    $('form').submit(function(event) {
        event.preventDefault();

        $.ajax({
            type: $(this).attr('method'),
            url: $(this).attr('action'),
            data: new FormData(this),
            contentType: false,
            cache: false,
            processData: false,
            success: function(result) {
                alert(result); // В душе не знаю что тут делать
            },
        });
    });
});
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ответы на вопрос 1
@v__V__v
Разработчик
У вас не прерывается выполнение скрипта после обработки данных, поэтому форма выводится в любом случае. Поставьте хотя бы die после echo 'Вы успешно зарегистрированы!'. Или лучше выводите форму только в том случае, когда isset($data['do_signup']===false.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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