0

購読フォームを作成しようとしています。自分のサイトで php を実行できません。また、ユーザーがニュースレターを購読するためにメイン サイトを離れることを望んでいません。この例をサーバー側として使用しています。メールを入力しようとするとリダイレクトされ、メールが mailchimp リストに追加されていてもエラー メッセージが表示されます。

<div id="email">
<span>Your email..</span>
<form action="http://simondahla.com/jolliassets/notify.php" id="notify" method="POST">
    <input type="text" placeholder="your@email.com" name="email" id="address" data-validate="validate(required, email)"/>
    <span>We'll never spam or give this address away</span>
    <button type="submit">&#187;</button>
</form>
<span id="result"></span>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    $('#notify').submit(function() {
        var action = $(this).attr('action');
        $.ajax({
            url: action,
            type: 'POST',
            data: {
                email: $('#address').attr('value')
            },
            success: function(data){
                $('#result').html(data).css('color', 'green');
            },
            error: function() {
                $('#result').html('Sorry, an error occurred.').css('color', 'red');
            }
        });
    });
});
</script>

問題の実例

4

2 に答える 2

1

false送信ハンドラーから戻る必要があります。これは、ブラウザがデフォルトのアクションを実行しないようにするためです。つまり、通常の方法でフォームを送信します。

$('#notify').submit(function() {
   // .. your ajax call
   return false;
});
于 2012-11-04T14:29:30.223 に答える
1

コードの成功または失敗に応じて、PHP 関数から必要な値を返します。

成功:

print json_encode(array("status"=>"success","message"=>'Successfully added'));

失敗した:

print json_encode(array("status"=>"error","message"=>'There was an error'));

次に、HTML でそのメッセージを次のように返します。

success: function(data){
            $('#result').html(content.message).css('color', 'green');
        },
        error: function() {
            $('#result').html(content.message).css('color', 'red');
        }
于 2012-11-04T14:50:00.413 に答える