0

一度に 2 つのフォームを送信しようとしています (1 つは db に、もう 1 つは fpdf に移動してラベルを作成します)。jquery を使用して、変数を最初のフォームから 2 番目のフォームの隠し入力にコピーします。この質問がここで数回尋ねられたのを見ましたが、答えはどれも役に立ちませんでした. 「偽の」ajaxメソッドを使用します-つまり、フォームターゲットを同じページの非表示のiframeに設定します。したがって、1 つのフォームを送信してから、遅延を使用して 2 番目のフォームを送信します (遅延なしでは機能しないためです!)

では、このコードに遅延を追加するにはどうすればよいですか。

    $('#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>
4

1 に答える 1

1

スクリプトが何を実行しているか、または何を返しているかは明確ではありませんが、最初のリクエストにはいつでもajaxを使用し、2番目のリクエストには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();
    })
  });
});

このようにして、最初のフォームが正常に応答した後、2番目のフォームが送信されます。

于 2012-06-18T06:59:12.500 に答える