Данные формы, взятые через Ajax и POSTed в PHP-скрипт для ввода в БД - PullRequest
1 голос
/ 16 августа 2011

Это, наверное, очень просто, но я действительно над головой.По сути, у меня есть форма с одним вводом: электронная почта и кнопка отправки.Это не было сделано мной, поэтому я очень мало понимаюЯ попытался найти команду .ajax jQuery, но это все равно не имеет смысла.

По сути, вот что у меня есть на index.php.

JS и HTML:

<!-- Subscription -->
<script>        
    $(function() {
        $('form input.submit').click(function (event) {
            event.preventDefault();
            event.returnValue = false;
            $.ajax({
                type: 'POST',
                url: 'subscribe.php',
                data: {email: $('form input[type=email]').val()},
                success: function(data) {
                    if (data == 'successful') {
                        $('#subscribe_status').html('Thanks for subscribing! We will let you know.').slideDown();
                    } else if (data == 'already_subscribed') {
                        $('#subscribe_status').html('This email is already subscribed.').slideDown();
                    } else if (data == 'invalid_email') {
                        $('#subscribe_status').html('This email is invalid.').slideDown();
                    } else {
                        $('#subscribe_status').html('Something went wrong. Please try again.').slideDown(); 
                    }
                },
                error: function () {
                    $('#subscribe_status').html('Subscription is not available.').slideDown();
                }
            });
        });
    });
</script>   
<form action="#">
    <input type="email" value="Your e-mail address..." onfocus="value=''" />
    <input type="submit" class="submit" value="Notify me" />
</form>

Subscribe.php

include 'go.php';
$email = $_POST['email'];
$ip=$_SERVER['REMOTE_ADDR'];
$timestamp = date("m/d/y H:i A");

mysql_query("INSERT INTO subscribers (ip, email, timestamp) VALUES (INET_ATON('$ip'), '$email', '$timestamp') ") or die(mysql_error());

Я просто продолжаю получать "Что-то пошло не так. Пожалуйста, попробуйте еще раз."

1 Ответ

2 голосов
/ 16 августа 2011

Subscribe.php ничего не возвращает, поэтому data в вашем JS всегда emtpy, следовательно, всегда выполняется последнее остальное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...