2010-03-10 134 views
1

我有一個頁面,其上需要發佈到外部URL的表單。不過,我也需要將這些信息發送到當前頁面(mypage.php)。出於安全原因,我不能只發布到mypage.php並使用cURL通過PHP發佈到外部網站 - 表單必須直接提交到外部網站。提交之前的jQuery表單發佈

此代碼將在mypage.php找到並不起作用(我假設提交myForm會的不是等待後):

$('#myform').submit(function() { 
    $.post('mypage.php', serialized_form, 
     function(data) { 
      ... 
     }, 'html' 
    ); 
} 

... 

<form id="myform" action="http://example.org" method="post"> 
... 
</form> 

什麼是做這樣的事情的最好方法?

謝謝!

回答

5

您可以使$ .post()同步,這將阻止javascript(和站點)繼續,直到它返回。

如果你使用$.ajax({type: 'post', async: false})(加上你的其他參數)應該做的伎倆。

您可以閱讀@http://api.jquery.com/jQuery.ajax/

+0

哈哈,哎呀,是啊 – Seaux 2010-03-10 16:08:52

0

更多信息它會爲你工作?

$('#myform').submit(function() { 
$.post('mypage.php', serialized_form, 
    function(data) { 
     ... 
     $.post('http://example.org', serialized_form, ....); 
    }, 'html' 
); 
return false; 
} 

<form id="myform" method="post">...</form> 
+0

沒有,因爲我需要的形式,但要完成它的行動(與用戶被帶到外部網站,而這樣的)。 – Wickethewok 2010-03-10 16:10:06

+0

我不認爲他正在嘗試做兩個Ajax請求......只有一個到他的網站,然後實際上有形式去其他網站 – Seaux 2010-03-10 16:10:42

0

如果我理解你的問題,那麼你需要你的數據到$ url,然後仍然提交表單。希望下面的代碼對你的作品(未測試^^):

;(function($) { 
    var sent = false; 

    $('#myform').submit(function() { 
     if(sent) { 
      return true; 
     } 

     $.post('mypage.php', serialized_form, 
      function(data) { 
       sent = true; 
       $('#myform').submit(); 
      }, 
      'html' 
     ); 

    return false; 
    }); 
})(jQuery); 
+0

我曾嘗試過這樣的事情,但對submit()的調用不起作用。 – Wickethewok 2010-03-10 16:37:35