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

时间:2013-07-04 12:53:00

标签: php html forms

我有一个带有两个“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时,表单会以index.php提交给target="somwhere"。在服务器端,我使用textarea生成带有值的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上提交有或没有目标的表单?

1 个答案:

答案 0 :(得分: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();