2012-06-18 168 views
0

我試圖一次提交兩種形式(一個去db,另一個去fpdf做標籤)。我使用jquery將第一種形式的變量複製到第二種形式的隱藏輸入中。我在這裏看過這個問題幾次,但沒有一個答案有幫助。我使用'假'ajax方法 - 即:我將表單目標設置爲同一頁上的隱藏iframe。所以我要提交一個表單,然後使用延遲然後提交第二種形式兩種形式之一提交 - 提交,延遲,提交

那麼,如何延遲添加到這個代碼(因爲它沒有延遲的工作!):

$('#insert').submit(function() { 
    //Delay here please, or is it timeout I need? 
    $('#print').submit(); 
    }); 

<form id="insert" action="insert.php" target="hiddeniframe"> 
// a bunch of inputs 
<input type="submit" value="submit"> 
</form> 

<form id="print" action="pdf.php" target="hiddeniframe"> 
// a bunch of inputs 
</form> 
+0

你爲什麼不使用ajax? –

+0

@ChristianVarga我從來沒有使用Ajax,所以我試圖保持簡單。即使我使用Ajax,我相信我仍然會遇到同樣的問題。 – cantaffordretail

+0

pdf.php腳本究竟做了什麼?它是否會返回某些內容,或者在服務器上創建文件?沒有理由不能一次提交2個Ajax請求(儘管說實話你應該只在服務器上發送一次數據到一個動作,然後在那裏分割插入和pdf動作)。 –

回答

1

這是不清楚您的腳本正在做什麼/返回,但您始終可以對第一個請求使用ajax,然後對第二個請求使用iframe。例如:

$('#insert').on('submit', function(e) { 
    e.preventDefault(); 

    $.ajax({ 
    url: $(this).attr('action'), 
    type: 'POST', 
    data: $(this).serialize(), 
    success: function() { 
     // duplicate fields from first form into second form 
     // as per whatever code you've already written 

     // submit second form 
     $('#print').submit(); 
    }) 
    }); 
}); 

這樣第二種形式是在第一種形式的成功響應之後提交的。

+0

我喜歡這個解決方案,但我無法讓它工作提交第二種形式。我不需要複製字段,因爲它已經在keyup上完成了。 – cantaffordretail

+0

在成功函數中查找'alert' /'console.log'以確保它正在觸發。另外檢查螢火蟲/開發人員工具以確保沒有錯誤,並且事件實際上正在發送。 –

+0

只是我缺乏知識。我有第二個表單的提交按鈕,並且如果表單具有提交按鈕,submit()將不起作用。一切都很好,這個解決方案非常棒!謝謝 – cantaffordretail