ので動作しません。代わりに、 "submit.php"を返し、1を返します。のAjax/jQueryのリダイレクトコールは私が{:1エラー}こだましています、私のPHPから
答えて
さて、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();
});
});
あなたの失敗のケースでこれを削除することができます。これは、何もしません。なぜなら、非同期関数が戻ってくるまでにスタックがすでにクリアされていたからです(もしそうであれば)。
フォームが送信されないようにする必要があります。
$(document).ready(function(){
$('#form').submit(function(e){
register();
e.preventDefault(); // Or return false;
});
});
フォームは送信され、ajaxはコールバックを処理する機会がありません。
フォームはいつ送信できますか? – user461316
あなたはすでにajaxの電話でフォームを提出しています – Andy
フォームを提出する必要がありますか?コードサンプルから、あなたはあなたのajax呼び出しのラッパーとしてフォームを使用しているという印象を受けます。 – petraszd
私が知っていることは、私が返すのは、私のコードのjsonです。ちょうど読むのが簡単になりたかったのです。 jsonパーツが動作し、エラーjqueryがdivsの作業を表示します。そのリダイレクトはありません。私は実際には、URLを表す私のコードmsg.txtで使用しています – user461316
テストケースを単純化しないでください。テストしなくても、同じことが起こります。 :) いずれにしても、私の追加のコメントが参考になるかもしれません。そうでなければ、もっとコードを実際に見る必要があります。 –
あなたのコメントに書いたのは、私のPHPコードにある正確なものです。完全なjsonの代わりに1を書くのは私のせいです。 – user461316