我有一个包含WYSIWYG编辑器和两个提交按钮的表单:
<input type='submit' name='pdf' value='PDF Preview'/>
<input type='submit' name='save' value='Save'/>
&#34; PDF&#34; action将编辑器的内容显示为PDF输出。 &#34;保存&#34; action是常规表单提交。我希望PDF输出在新标签中打开,并且无法确定如何执行此操作。
没有&#34;目标&#34;属性为&#34;输入&#34;标签。我可以添加&#34; target = _blank&#34;到&#34;形式&#34;标签,但那将提交我的&#34;保存&#34;在新标签中的操作也是我不想要的。
我试图替换&#34; pdf&#34;提交按钮:
<a href="same_page" target="_blank" onclick="submitForm();">
那不起作用。表单在其当前选项卡中提交,新选项卡查询在$ _POST中不会收到任何内容。
还有一个我不知道的魔术吗?
注意:服务器端代码是PHP
答案 0 :(得分:2)
使用按钮和onclick事件与jQuery。
<button type='submit' name='pdf' onclick="$('form').attr('target', '_blank');">PDF Preview</button>
<button type='submit' name='save' onclick="$('form').attr('target', '');">SAVE</button>
答案 1 :(得分:1)
简而言之,您有一个表单+两个提交按钮
第一个按钮:在同一个标签页中打开
第二个按钮:在新标签页中打开
提交后,您想知道提交了哪一个
<强>解决方案:强>
添加两个具有不同行为的提交按钮是不可能的 所以你需要JS帮助或Jquery( Ravi Hirani 解决方案是完美的)
要知道提交了哪个按钮,您应该提供不同的名称( newage 评论是完美的)
所以这只是一个简单的例子,你正在寻找的魔力:
<?php
//print the post data
var_dump($_POST);
?>
<script type="application/javascript" src="https://code.jquery.com/jquery-3.0.0.min.js"></script>
<form action="test.php" method="POST">
<!-- just simple textarea -->
<textarea rows="4" cols="50" name="textarea">
text here
</textarea>
<!-- new tab submit button -->
<input type="submit" name="New_Window" value="New Window" onclick="$('form').attr('target', '_blank');" />
<!-- same tab submit button -->
<input type="submit" name="Same_Window" value="Same Window" onclick="$('form').attr('target', '');" />
</form>
答案 2 :(得分:0)
您可以尝试使用jQuery。 例如,当单击PDFPreview按钮时,jQuery可以将表单输入的值保存到cookie中。然后它将在新选项卡中重定向到PDFPreview页面。然后,PDFPreview页面将读取cookie。 E.g:
<script>
var input1 = null;
function previewPdf()
{
input1 = $("#input1").text();
document.cookie = "input1=" + input1;
window.open("/path/to/pdfPreview.php", '_blank')
}
</script>
<form action="whateverpage" method="post">
<input type="text" name="input1" id="input1">
<input type="button" onClick="previewPdf();" value="Preview PDF">
<input type="submit" value="Save">
</form>
答案 3 :(得分:-1)
您可以使用formtarget
标签的HTML5 input
属性来更改表单行为。但是,这不适用于过时的浏览器。在您的情况下,它将类似于:
<input type='submit' name='pdf' formtarget="_blank" value='PDF Preview'/>
<input type='submit' name='save' formtarget="_self" value='Save'/>
它也可以与button
标签一起使用。
参考文献: