-2

私は過去数時間、これを解決する問題を抱えていましたが、イライラして解決策を見つけることができません. JQuery .ajax() 関数を使用してフォームを送信しようとしていますが、送信していません。コードは次のとおりです。提案をいただければ幸いです。

 JS:

$(document).ready(function() {

    var livelistURL = "/scripts/livelist.php?guestlist=<?php echo $_GET['guestlist']; ?>";
    var names = '';
    var dot = '.';
    
    $("#livelist").load(livelistURL);
    $("input#name").select().focus();

    $("#addname").submit(function(event){
        event.preventDefault();
        
        $("input#name").blur();
        $('#working').show();
        $('#event-box').fadeTo('fast', 0.5);  
        
        var guestlist = '<?php echo $_GET['guestlist']; ?>';
        var name = $('input#name');
        var by = '<?php echo $email; ?>';
        
        var data = 'name=' + name.val() + '&guestlist=' + guestlist.val() + '&by=' + by.val();  
    
        $("input#name").blur();

        $.ajax({
            url: "/scripts/addname.php",
            type: "post",
            data: data,
            success: function(){
                var value = $("input#name").val().toUpperCase();;
                $("span.success").text(value);
                
                if (names == '') {
                    names = value;
                }
                else {
                    names = ' ' + value + ', ' + names;
                    $("span#dot").text(dot);
                }
                
                $("span#name1").text(names);
                $('#working').fadeOut('fast');
                $('#success').fadeIn('fast');
                $('#added-names').fadeIn('fast');
                $('#success').delay('600').fadeOut('fast');
                $('#event-box').delay('600').fadeTo('fast', 1.0);
            },
            error: function(){
                $('#working').fadeOut('fast');
                $('#error').fadeIn('fast');
                $('#error').delay('600').fadeOut('fast');
            },
            complete: function(){
                $("input#name").val('');
                $("input#name").select().focus();
            }
        });
    });
}); // end

フォーム HTML:

<form id="addname">
            <input id="name" name="name" class="tagcheck" style="z-index: 1000;" minlength="5" maxlength="60" placeholder="Add Name" />
        </form>
4

2 に答える 2

1

Firebug をインストールし、コンソールを確認します。これは、Ajax リクエストをデバッグするのに役立ちます。私はこれを多用しています。

他のすべての Javascript を削除してみて、機能するまで削除してください。また、addname.php にエラーがある可能性があります。

于 2012-04-09T02:03:16.143 に答える
0

この行で私が見るいくつかの問題:

var data = 'name=' + name.val() + '&guestlist=' + guestlist.val() + '&by=' + by.val();

guestlistとby変数はjQuery変数ではないことに注意してください。したがって、val()は使用できません。エラーが発生します。両方からval()を削除すると、その問題が修正されるはずです。

var data = 'name=' + name.val() + '&guestlist=' + guestlist + '&by=' + by;  

あなたのフォームにはある種の送信ボタンがあると思いますよね?フォームHTMLのその部分を含めなかっただけですか?

于 2012-04-09T02:10:35.520 に答える