以两种不同的方式提交表格


Submit form in two different ways

我有一个带有两个"a"链接的表单。双方都应该提交表格,但有两种不同的方式。

这是我目前拥有的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时,表单将与target="somwhere"一起提交给index.php。在服务器端,我从文本区域生成具有值的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上有某种方法可以提交有目标和无目标的表格?

使用像这样的多个提交按钮更容易做到:

<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();