2009-10-08 70 views
0

當我有一個做了jQuery的AJAX後,然後腳本應該重定向到一個不同的頁面。問題在於,在帖子完成之前它有時會重定向。似乎有幾個解決方案,但我無法讓他們工作。謝謝你的幫助! 這裏是我的代碼:jQuery的崗位做

$.post("cart.php", { 'products[]':postvalues }, function(data) { }); 
location.href="index.php"; 

回答

5

你需要把你的location.href的回調函數內。

$.post("cart.php", { 'products[]':postvalues }, function(data, status) { 
    // if you don't want to redirect if it doesn't work, you can check if status == 'success' 
    location.href = "index.php"; 
}); 

jQuery.post文檔的更多信息。

雖然,我必須要問:如果你打算無論如何要重定向,爲什麼通過AJAX做到這一點?

是有一些原因,你不想簡單地提交表單的正常方式?如果不是,那麼你應該改用這條路線。

+0

這將是簡單的,但崗位是動態的,搞得這取決於用戶選擇,如果用戶選擇某些項目更被添加。它的行爲像複選框,但用圖像完成。 – Scott

+0

爲了使它成功,我不得不將'href'從'.'改爲'#'。 – dhill

1

執行重定向在回調函數上的成功:

$.post("cart.php", { 'products[]':postvalues }, function(data, textStatus) { 
    if (textStatus == "success") { 
     location.href="index.php"; 
    } 
}); 

jQuery.post爲其他狀態來實現進一步的錯誤處理。

1

你的問題是,你的位置變化不會等待你的職位採取行動來完成......因爲後使用Ajax它傳遞控制到下一行一旦發送請求。如果你想去你可以做window.location.reload(在同一頁

$.post("cart.php", { 'products[]':postvalues }, function(data) { 
// do stuff with data 
location.href="index.php"; 
}); 
0

),如果TOU希望與JS你可以使用負載濫用:

爲了解決這個問題,這樣做一個DIV,只有內容