我有一个带有两个“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,但它应该发送到提供的电子邮件,然后它应该在同一页面上显示确认消息。所以:
在index.php
中,我需要以某种方式区分导致表单提交的内容(pritn_pdf_btn
)或(doc_send_email
)。如果我能够在#pritn_pdf_btn.click
和#doc_send_email.click
上设置一些变量,然后通过POST
发送,则会有所帮助。但我找不到溶剂。
我需要某种方式来提交包含target="somwhere"
且没有target="somwhere"
的表单。可能在#pritn_pdf_btn.click
和#doc_send_email.click
上提交有或没有目标的表单?
答案 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();