1

「a」リンクが 2 つあるフォームがあります。どちらもフォームを送信する必要がありますが、2 つの異なる方法で送信します。

これは私が現在持っているhtmlです。

HTML:

<form method="post" id="doc_form" target="somwhere">
<textarea name="doc_text"><?php echo $file; ?></textarea>
            <input type="hidden" name="submitted" value="1" />
        </form>
        <a id="doc_send_email" class="btn">SEND</a>
        <a id="pritn_pdf_btn" onclick="document.getElementById('doc_form').submit();" class="btn">Print <span class="span_pdf">PDF </span></a>              

ユーザーが をクリックする#pritn_pdf_btnと、フォームが に送信さindex.phptarget="somwhere"ます。サーバー側では、テキストエリアの値を使用して pdf を生成しています。この PDF は新しいタブで開かれます ( target="somwhere"pdf を新しいタブで開くトリックです)。

ただし、今では#doc_send_emailクリック時にフォームを送信する必要もあります。この場合、PDF も生成する必要がありますが、提供された電子メールに送信し、同じページに確認メッセージを表示する必要があります。そう:

  1. ではindex.php、フォーム送信 ( pritn_pdf_btn) または ( doc_send_email) の原因をどうにか区別する必要があります。いくつかの変数を何度も設定し#pritn_pdf_btn.click#doc_send_email.clickから 経由で送信POSTできれば、それは役に立ちます。しかし、私は解決策を見つけることができませんでした。

  2. target="somwhere"の有無にかかわらずフォームを送信する方法が必要target="somwhere"です。おそらく、ターゲットの有無にかかわらず、フォームを送信するために#pritn_pdf_btn.click何らかの方法がありますか?#doc_send_email.click

4

1 に答える 1

1

次のように複数の送信ボタンを使用すると簡単です。

<form method="post" id="doc_form" target="somwhere">
    <textarea name="doc_text"><?php echo $file; ?></textarea>
    <input type="hidden" name="submitted" value="1" />
    <input type="submit" name="email" value="1" id="doc_send_email" class="btn" value="SEND"/>
    <input type="submit" name="pdf" value="1" id="pritn_pdf_btn" class="btn" value="Print PDF"/>
</form>

次にバックエンドで(PHPであると仮定)

 if($_POST['email'])
   sendEmail();
 else
   generatePDF();

またはJSを使用して:

<form method="post" id="doc_form" target="_self">
   <textarea name="doc_text"><?php echo $file; ?></textarea>
   <input type="hidden" name="submitted" value="1" />
   <input type="hidden" name="action" id="action" value="generate" />
 </form>
 <a id="doc_send_email" onclick="document.getElementById('action').value='email';document.getElementById('doc_form').submit();" class="btn">SEND</a>
 <a id="pritn_pdf_btn" onclick="document.getElementById('action').value='generatePdf';document.getElementById('doc_form').target='somwhere';document.getElementById('doc_form').submit();" class="btn">Print <span class="span_pdf">PDF </span></a>  

次にバックエンドで(PHPであると仮定)

 if($_POST['action']=='email')
   sendEmail();
 else
   generatePDF();
于 2013-07-04T12:59:09.033 に答える