Запрос для формы регистрации

192
22 ноября 2018, 12:30

Начал изучать js, взял тестовое задание:

Форма регистрации с AJAX запросом, если меил есть в БД, выводим ошибку, если нет - сообщение о успехе. Сообщения ошибки и успеха сделал в php обработчике, а как сделать так, чтобы вывести их через js парсив переменную через json?

    <!DOCTYPE html>
<html lang="en">
<head>
    <title>Форма регистрации</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
    <h2>Форма регистрации</h2>
        <div class="form-group">
            <label for="email">Введите ваш email:</label>
            <input type="email" class="form-control" id="email" placeholder="Enter email" name="email">
        </div>
        <button type="submit" class="btn btn-default">Подписаться</button>
</div>
<div id="result"></div>
<script>
    $(function () {
        $('button').on('click',function () {
            $.ajax({
                type: "POST",
                url: "index.php",
                data: "email=" + $('input').val(),
                success: function (msg) {
                    var a = $.parseJSON(msg);
                    for (key in a)
                     {
                    }
                }
            });
        });
    });
</script>
</body>
</html>

И вот php код:

<?php
if ($_POST['email'] === 'mail@gmail.com') {
    echo '{
   "status" : "Success",
   "description" : "Ваш меил успешно занесен в базу данных!"
    }';
} else {
    echo '{
   "status" : "Error",
   "description" : "Ваш меил уже есть в базе данных!"
    }';
}
Answer 1
$.ajax({
    type: "POST",
    url: "index.php",
    dataType: "json",
    data: "email=" + $('input').val(),   
    success: function (msg) {
        if (msg.status == 'Error') {
            alert(msg.description);
            return false;
        }
        alert(msg.description);
    }
});

Ну и здесь:

<?php
if ($_POST['email'] === 'mail@gmail.com') {
    echo json_encode(['status' => 'Success', 'description' => 'Ваш меил успешно занесен в базу данных!']);
} else {
    echo json_encode(['status' => 'Error', 'description' => 'Ваш меил уже есть в базе данных!']);
}
READ ALSO
Мультизагрузка файлов с progress bar

Мультизагрузка файлов с progress bar

Мучает вопрос, как грамотно реализовать множественную загрузку файлов, чтобы при загрузке у каждого файла был свой progress barДелал по примеру...

177
Создание таймера на страницах PHP и pagination

Создание таймера на страницах PHP и pagination

Задача в том, чтобы на всех страницах-слайдах разместить таймер времени и начиная с первой страницы включить этот таймер

258
Расспаристь &ldquo;тег&rdquo; игнорируя похожие

Расспаристь “тег” игнорируя похожие

В теле документа есть специальные теги в виде {name}, все бы хорошо, но есть конфликт, когда есть похожий тег {{name}}, где вместо одной фигурной скобки...

165