Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 表单上的两个提交按钮每次单击时都会重定向到不同的页面?_Php_Javascript_Forms_Redirect_Submit - Fatal编程技术网

Php 表单上的两个提交按钮每次单击时都会重定向到不同的页面?

Php 表单上的两个提交按钮每次单击时都会重定向到不同的页面?,php,javascript,forms,redirect,submit,Php,Javascript,Forms,Redirect,Submit,我承认我在这件事上有点不知所措。我的时间不多了,因为我需要在周一之前完成这一页的工作,我感到绝望;我花了一周的时间在谷歌上搜索和梳理stackoverflow的答案,但我仍然不知道如何让它发挥作用 我有一张表格,底部有两个提交按钮,现在保留预订和预订。每个按钮都需要提交表单数据(仅在电子邮件中,没有什么特别的),然后重定向到预订确认静态html页面或我的预订页面 我已经尝试过这样做,它可以很好地重定向,但不会将表单数据通过电子邮件发送给我: <input type="submit" onc

我承认我在这件事上有点不知所措。我的时间不多了,因为我需要在周一之前完成这一页的工作,我感到绝望;我花了一周的时间在谷歌上搜索和梳理stackoverflow的答案,但我仍然不知道如何让它发挥作用

我有一张表格,底部有两个提交按钮,现在保留预订和预订。每个按钮都需要提交表单数据(仅在电子邮件中,没有什么特别的),然后重定向到预订确认静态html页面或我的预订页面

我已经尝试过这样做,它可以很好地重定向,但不会将表单数据通过电子邮件发送给我:

<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();
});