2012-09-24 93 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

相关问题