2012-09-24 59 views
0

我有兩個數據表,我都融合在一起使用Javascript和jQuery。我要發佈這個數據到Rails控制器動作,但動作的結果將需要顯示在另一種觀點認爲,我有點累搞清楚如何做一個重定向從一個AJAX POST另一個動作的(這只是拒絕顯示)。如何在沒有Ajax的情況下發布自定義關聯,或者從Ajax POST進行HTML重定向?

所以,現在我的問題是,我怎樣才能改變這種代碼實際上張貼,做一個重定向到另一個動作?

我原來的代碼是:

submithash = {} 
submithash['standard_id'] = $("#app_standard_id").val() 
submithash['apps'] = apps 

hash = { type: "POST", url: "create_all", data: submithash } 
$.ajax(hash) 

這個工作,因爲它正確地提交給我的Rails控制器動作很大,但當然也有不似​​乎是從一個Ajax提交重定向一個乾淨的方式,實際上向用戶物理地顯示實際頁面。

我想:

$form = $("<form>").attr("method", "post").attr("action", "create_all") 
$("<input type='hidden'>").attr("name", "standard_id").attr("value", $("#app_standard_id").val()).appendTo($form) 
$("<input type='hidden'>").attr("name", "apps").attr("value", apps).appendTo($form) 
$form.submit 

課程,拒絕工作的,但是。它甚至沒有做任何事情,這有點奇怪。

+0

有什麼理由不使用window.location.replace(newUrlFromAjax); ? –

+0

第二部分不起作用,因爲您必須在提交文件之前將文件追加到文檔中。並使用$ form.submit(); –

+0

fliespl - 它實際上是CoffeeScript的,所以我跳過了括號和分號。如何將附加內容添加到主文檔中。 – AKWF

回答

0

的文檔最後我使用這個jQuery插件:

(function($) { 
$.extend({ 
    getGo: function(url, params) { 
     document.location = url + '?' + $.param(params); 
    }, 
    postGo: function(url, params) { 
     var $form = $("<form>") 
      .attr("method", "post") 
      .attr("action", url); 

     $.each(params, function(name, value) { 
      $("<input type='hidden'>") 
       .attr("name", name) 
       .attr("value", value) 
       .appendTo($form); 
     }); 
     $form.appendTo("body"); 
     $form.submit(); 
    } 
}); 
})(jQuery); 

它建立隨時隨地通過它傳遞的表單,然後將其附加到文檔中。然後它會定期發佈POST(或GET,具體取決於您所調用的內容)。

0

如果我理解你的問題正確,您希望您的網頁重定向到另一個網址,當你調用Ajax「create_all」完成。

所以,你可以使用這樣的成功回調函數:

hash = { type: "POST", 
     url: "create_all", 
     data: submithash, 
     success: function(data){ 
      //Here you can write your redirection code 
      //this function will be called when ajax completes successfully 
      window.location = "url"//redirect url; 
      //or you can also start another ajax 
     } 
     }; 
$.ajax(hash); 

還檢查了爲jquery.ajax() here

相關問題