2011-08-01 12 views
0

私は今、いくつかのアクションやイベントに基づいてjQueryでwindow.locationを使用して同じページを再ロードするにはどうすればよいですか?

(function ($) { 
jQuery.fn.saveUser = function(destinationUrl) { 
    this.click(function() { 
     var formData = 'option=saveuser&'+$('form#save-user').serialize(); 
     $.ajax({ 
      type: 'POST', 
      url: 'process.php', 
      data: formData, 
      success: function(msg){ 
       if(msg === 'empty') { 
        alert('Required Values Missing'); 
       } else if(msg === 'duplicateEmail'){ 
        alert('Email already exist'); 
       } else { 
        window.location = destinationUrl; 
       } 
      } 
     }); 
    }); 
} 

jQueryの機能を持っているが、私はこのケースでは、私は、それは二つの異なるURLにリダイレクトする必要があり、別のページにリダイレクト。

以下のjQueryコードで特定のURLにリダイレクトできます。

$('form#save-user button[name="save-user-close"]').saveUser(function() { 
    return 'index.php?users'; 
}); 

しかし、私はそれが例えば同じページにリダイレクト作るのですかどのようになっていません。

$('form#save-user button[name="save-user-close"]').saveUser(function() { 
    return location.reload(true); 
}); 

私は上記のコードが動作しないことを知っていますが、私はこれとどうやって行くのですか?

答えて

3

に近づくことができる変数を保存関数。 Inteadの:

window.location = destinationUrl; 

あなたは関数を呼び出すと、関数はリダイレクトをやらせる必要があります。

destinationUrl(); 

(そして、あなたはおそらく、利用状況の変更を反映するために、パラメータの名前を変更したい。)

$('form#save-user button[name="save-user-close"]').saveUser(function() { 
    window.location = 'index.php?users'; 
}); 
:あなたは二番目で reloadメソッドを使用できるように

は、だからあなたの関数は、代わりにURLを返すのリダイレクトを行う必要があります

と:

$('form#save-user button[name="save-user-close"]').saveUser(function(e) { 
    location.reload(true); 
}); 
+0

'リターンlocation.reload(真の);'私のjQueryの機能は動作しません。 –

+0

@Ibrahim Azhar Armar:はい、私はそれがもう少し複雑であることに気付きました。私は答えを編集しました。 – Guffa

+0

これはいいです、私はjQueryの初心者ですので、私はこのことがどのように動作するかについてほとんど理解していません:)ありがとう –

3
window.location.href=window.location.href; 

または

location.replace(URL); 

が、それはあなたがに入れて何でも動作しないようにあなたは、あなたのコード内の関数を呼び出すことはありませんuは、クエリ文字列またはセッション変数に

関連する問題