2011-07-11 3 views

答えて

2

さて、JSONではないので、1の戻り値を持つことはできません。あなたが '1'を返すだけで、それに対してparseIntを実行するなら、dataTypeを 'html'に設定します。


あなたはJSONをしたい場合は、お使いのPHPでこれを行う:

$return = array('code'=>1); 
echo json_encode($return); 

あなたの '成功' 機能は、次のようになります。

if(msg.code==1){ 
    window.location="index.html"; 
} 
else if(msg.code==0) 
{ 
    $('#error_out').html(msg.code); 
    e.preventDefault(); 
} 
else 
{ 
    // handle any other return value. 
} 

[OK]を、私のせいに問題を正しく読まない。問題は、フォームを送信していて、正しくキャンセルしていないことです。あなたのイベントハンドラでこれを行います:

$(document).ready(function(){ 
    $('#form').submit(function(e){ 
     e.preventDefault(); 
     register(); 
    }); 
}); 

あなたの失敗のケースでこれを削除することができます。これは、何もしません。なぜなら、非同期関数が戻ってくるまでにスタックがすでにクリアされていたからです(もしそうであれば)。

+0

私が知っていることは、私が返すのは、私のコードのjsonです。ちょうど読むのが簡単になりたかったのです。 jsonパーツが動作し、エラーjqueryがdivsの作業を表示します。そのリダイレクトはありません。私は実際には、URLを表す私のコードmsg.txtで使用しています – user461316

+0

テストケースを単純化しないでください。テストしなくても、同じことが起こります。 :) いずれにしても、私の追加のコメントが参考になるかもしれません。そうでなければ、もっとコードを実際に見る必要があります。 –

+0

あなたのコメントに書いたのは、私のPHPコードにある正確なものです。完全なjsonの代わりに1を書くのは私のせいです。 – user461316

1

フォームが送信されないようにする必要があります。

$(document).ready(function(){ 
    $('#form').submit(function(e){ 
     register(); 

     e.preventDefault(); // Or return false; 
    }); 
}); 

フォームは送信され、ajaxはコールバックを処理する機会がありません。

+0

フォームはいつ送信できますか? – user461316

+0

あなたはすでにajaxの電話でフォームを提出しています – Andy

+0

フォームを提出する必要がありますか?コードサンプルから、あなたはあなたのajax呼び出しのラッパーとしてフォームを使用しているという印象を受けます。 – petraszd