Php 表单上的两个提交按钮每次单击时都会重定向到不同的页面?
我承认我在这件事上有点不知所措。我的时间不多了,因为我需要在周一之前完成这一页的工作,我感到绝望;我花了一周的时间在谷歌上搜索和梳理stackoverflow的答案,但我仍然不知道如何让它发挥作用 我有一张表格,底部有两个提交按钮,现在保留预订和预订。每个按钮都需要提交表单数据(仅在电子邮件中,没有什么特别的),然后重定向到预订确认静态html页面或我的预订页面 我已经尝试过这样做,它可以很好地重定向,但不会将表单数据通过电子邮件发送给我:Php 表单上的两个提交按钮每次单击时都会重定向到不同的页面?,php,javascript,forms,redirect,submit,Php,Javascript,Forms,Redirect,Submit,我承认我在这件事上有点不知所措。我的时间不多了,因为我需要在周一之前完成这一页的工作,我感到绝望;我花了一周的时间在谷歌上搜索和梳理stackoverflow的答案,但我仍然不知道如何让它发挥作用 我有一张表格,底部有两个提交按钮,现在保留预订和预订。每个按钮都需要提交表单数据(仅在电子邮件中,没有什么特别的),然后重定向到预订确认静态html页面或我的预订页面 我已经尝试过这样做,它可以很好地重定向,但不会将表单数据通过电子邮件发送给我: <input type="submit" onc
<input type="submit" onclick="var e = document.getElementById('mpNOV'); e.submit(); e.action='mp-NOVconfirm.shtml';" value="Hold my reservation" class="submit"></td>
<td width="45%" style="padding-top:10px; padding-bottom:10px; border-top: 1px solid #6f3957;">
<input type="submit" onclick="var e = document.getElementById('mpNOV'); e.submit(); e.action='../../index.shtml';" value="Book Now!" class="submit">
我尝试过使用表单ACTION=“external.php”,这是php代码(基于我在另一个表单提交中使用的php代码):
但这里肯定有什么地方我做错了,因为当我点击提交按钮时什么也没发生。没有重定向,没有通过电子邮件发送表单数据
我原本想让这个函数与验证码脚本一起工作,但现在我不得不放弃它。我只需要尽快让这些提交按钮正常工作
我对php几乎一无所知,而且我对javascript非常熟悉(我在这里学习)。我真的很感激这里的任何帮助。谢谢 为什么不在表单标签中添加按钮?用这个导航
<form id="formid" action="link" method="post">
这就是jQuery是您最好的朋友的地方 两个带ID的僵尸
<input type="button" id="btn1" value="Hold my reservation" class="submit">
<input type="button" id="btn2" value="Book Now!" class="submit">
您可以在Ajax中获得创造性,并发送您想要的任何输入字段。这就是如何将它们分开,和/或将每次单击发送到不同的提交URL
还可以使用函数参数中的data变量将数据传递到“page.php”
或
只需重命名按钮名称,然后在提交页面上的帖子中检测,即可检测提交表单中按下的按钮
上述解决方案请参考本页:尝试命名您的提交按钮
Reservation
和Book
,如下所示:
<input type="submit" onclick="this.name='Reservation'; var e = document.getElementById('mpNOV'); e.submit(); e.action='mp-NOVconfirm.shtml';" value="Hold my reservation" class="submit"></td>
<td width="45%" style="padding-top:10px; padding-bottom:10px; border-top: 1px solid #6f3957;">
<input type="submit" onclick="this.name='Book'; var e = document.getElementById('mpNOV'); e.submit(); e.action='../../index.shtml';" value="Book Now!" class="submit">
更简单的jquery方法:
$('#buttonid1').click(function() {
$('#formid').attr('action', '/path/page1/');
$('#formid').submit();
});
$('#buttonid2').click(function() {
$('#formid').attr('action', '/path/page2/');
$('#formid').submit();
});
只是说…你有没有为
$\u POST['Reservation']
和$\u POST['Book']
隐藏输入?没有,我没想到。我会这样做吗如果你查看$\u POST['Reservation']
你必须在某个地方使用它。好的,我正在靠近你。我编辑了我的表单,因此顶部显示:如果您将两个提交按钮放在同一个
中,您将始终获得相同的行为。我提交了一个答案,试图解决这个问题。准确地说,按钮在表单标签中。但我需要重定向到两个位置,具体取决于按下了哪个提交按钮(我正试图使用.php),但它不起作用;希望这有帮助吗?如果我有一个很长的表单,并且我需要提交两个按钮的所有数据,那么这个jQuery脚本不是很长吗??无论他们按哪个按钮,发送给我的数据都保持不变。只有路径发生了变化:一个用于预订的静态html页面,以及一个用于准备立即付款的预订路径。@JodiLindKuehn,是的,“数据:”类型对象可能会有点长。您还可以使用解决方案2并从后端控制它!
<input type="submit" onclick="this.name='Reservation'; var e = document.getElementById('mpNOV'); e.submit(); e.action='mp-NOVconfirm.shtml';" value="Hold my reservation" class="submit"></td>
<td width="45%" style="padding-top:10px; padding-bottom:10px; border-top: 1px solid #6f3957;">
<input type="submit" onclick="this.name='Book'; var e = document.getElementById('mpNOV'); e.submit(); e.action='../../index.shtml';" value="Book Now!" class="submit">
$('#buttonid1').click(function() {
$('#formid').attr('action', '/path/page1/');
$('#formid').submit();
});
$('#buttonid2').click(function() {
$('#formid').attr('action', '/path/page2/');
$('#formid').submit();
});