提交包含三个动作的表单
Submit form with three actions
我有一个三按钮表单。第一个按钮 "only Save document"、第二个按钮 "only generate PDF" 和第三个按钮 "Save document and Generate PDF".
只有“保存”按钮 - 只是提交表单 - 工作正常
<form method="post">
<button type="submit" name="save">
<input>....
</form>
仅“生成 PDF”按钮 - 使用简单 jquery 更改表单操作和目标并将其发送到 PDF 生成器 - 也可以正常工作
<form method="post">
<button type="submit" name="generate" id="generate">
<input>....
</form>
<script>
$('#generate').click(function(){
$('form').get(0).setAttribute('action', './library/pdf/generator.php');
$('form').get(0).setAttribute('target', 'blank');
});
</script>
保存文档和生成 PDF 按钮 - 在这里我需要一键合并...提交 + 保存数据并在新选项卡中打开 PHP 生成器 (window) .. 两者使用相同的 POST 数据...有什么想法吗?我被困在这里
编辑: 尝试了这个回调但没有成功..它只打开 pdf 生成器(我是 jquery 的初学者,所以可能是废话)
$(function() {
$('#saveandgenerate').click(function(){
$('form').get(0).setAttribute('action', './library/pdf/generator.php');
$('form').get(0).setAttribute('target', 'blank');
$('form').get(0).submit(function(){
$('form').get(0).setAttribute('action', '');
$('form').get(0).setAttribute('target', '');
$('form').get(0).submit();
});
});
});
我建议使用比 javascript 更简单的 ajax post 来提交您的表单。
<form method="post" id="myForm">
<button type="button" id="generate" onclick="save_data();">
Generate PDF
</button>
<input>....
</form>
<script>
function save_data(){
$.ajax({
url: 'first/post/location/url',
type: 'post',
data: $("#myForm").serialize(),
success: function (response) {
setTimeout(function (){
document.getElementById("myForm").submit();
}, 1000);
}
});
}
</script>
希望对您有所帮助。
工作解决方案:
$(function() {
$('#save_and_generate').click(function()
{
$('form').get(0).setAttribute('action', './library/pdf/generator.php');
$('form').get(0).setAttribute('target', 'blank');
$('form').get(0).submit();
setTimeout(function() {
$('form').get(0).setAttribute('action', '');
$('form').get(0).setAttribute('target', '');
$("button#save").trigger('click');
},100);
});
});
提交 "Save and generate PDF" > 更改表单属性并使用 PDF 正确打开新 window > 100 次超时后将表单属性更改为默认值 > 触发 "only Save" 按钮
我有一个三按钮表单。第一个按钮 "only Save document"、第二个按钮 "only generate PDF" 和第三个按钮 "Save document and Generate PDF".
只有“保存”按钮 - 只是提交表单 - 工作正常
<form method="post">
<button type="submit" name="save">
<input>....
</form>
仅“生成 PDF”按钮 - 使用简单 jquery 更改表单操作和目标并将其发送到 PDF 生成器 - 也可以正常工作
<form method="post">
<button type="submit" name="generate" id="generate">
<input>....
</form>
<script>
$('#generate').click(function(){
$('form').get(0).setAttribute('action', './library/pdf/generator.php');
$('form').get(0).setAttribute('target', 'blank');
});
</script>
保存文档和生成 PDF 按钮 - 在这里我需要一键合并...提交 + 保存数据并在新选项卡中打开 PHP 生成器 (window) .. 两者使用相同的 POST 数据...有什么想法吗?我被困在这里
编辑: 尝试了这个回调但没有成功..它只打开 pdf 生成器(我是 jquery 的初学者,所以可能是废话)
$(function() {
$('#saveandgenerate').click(function(){
$('form').get(0).setAttribute('action', './library/pdf/generator.php');
$('form').get(0).setAttribute('target', 'blank');
$('form').get(0).submit(function(){
$('form').get(0).setAttribute('action', '');
$('form').get(0).setAttribute('target', '');
$('form').get(0).submit();
});
});
});
我建议使用比 javascript 更简单的 ajax post 来提交您的表单。
<form method="post" id="myForm">
<button type="button" id="generate" onclick="save_data();">
Generate PDF
</button>
<input>....
</form>
<script>
function save_data(){
$.ajax({
url: 'first/post/location/url',
type: 'post',
data: $("#myForm").serialize(),
success: function (response) {
setTimeout(function (){
document.getElementById("myForm").submit();
}, 1000);
}
});
}
</script>
希望对您有所帮助。
工作解决方案:
$(function() {
$('#save_and_generate').click(function()
{
$('form').get(0).setAttribute('action', './library/pdf/generator.php');
$('form').get(0).setAttribute('target', 'blank');
$('form').get(0).submit();
setTimeout(function() {
$('form').get(0).setAttribute('action', '');
$('form').get(0).setAttribute('target', '');
$("button#save").trigger('click');
},100);
});
});
提交 "Save and generate PDF" > 更改表单属性并使用 PDF 正确打开新 window > 100 次超时后将表单属性更改为默认值 > 触发 "only Save" 按钮