0

私のコードは:

$('form').submit(function(){
                var email           = $('#email').val();
                var dataString      = 'email='+email;
                var datadata;
                $.ajax({
                    type     : "get",
                    url      : "checkEmail.php",
                    data     : dataString,
                    dataType : "html",
                    success  : function(result){
                                 datadata = result;

                              }   
                });

          alert(datadata);
          return false;
            });

なぜこれdatadataが未定義なのですか?

私はから開発します。そして、提出前にajaxで重複したメールをチェックする必要があります。catect結果を返しますが、フォームは送信されます。

4

2 に答える 2

1

ajax 呼び出しは非同期です。つまり、アラートが発生したとき、ajax 呼び出しはまだ完了していません。

次のように ajax 成功関数にアラートを設定してみてください。

$('form').submit(function(){
                var email           = $('#email').val();
                var filename        = '<?php echo basename($_SERVER['PHP_SELF'], '.php'); ?>';
                var dataString      = 'email='+email+'&userlevel='+filename<?php echo isset($_GET['ID']) ? "+'&uid='+".$_GET['ID'] : '';  ?>;
                var datadata;
                $.ajax({
                    type     : "get",
                    url      : "checkEmail.php",
                    data     : dataString,
                    dataType : "html",
                    success  : function(result){
                                 datadata = result;
                                 alert(datadata);

                              }   
                });


          return false;
        });
于 2013-02-21T08:45:17.670 に答える
0

これは、成功が非同期呼び出しであるためですdatadata。まだ定義されていないときに取得しようとしています。datadata@ onsuccessを定義して渡す関数を作成し、result使用可能になったときに呼び出されるようにします。

于 2013-02-21T08:45:33.637 に答える