两个提交按钮的形式,每个重定向到不同的页面上点击
Two submit buttons on form each redirect to different page on click?
我承认我对这件事很困惑。我快没时间了,因为我需要在周一之前完成这个页面,我很绝望;我花了一周的时间在谷歌上搜索和梳理stackoverflow的答案,但我仍然不知道如何让这个工作。
我有1个表单,底部有两个提交按钮,HOLD RESERVATION和BOOK NOW。每个按钮都需要提交表单数据(只是在电子邮件中,没什么花哨的),然后重定向到预订确认静态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">
我试过让我的FORM ACTION="external.php"这是php代码(基于php代码我用于不同的表单提交):
<?php
if($_SERVER['REQUEST_METHOD'] === 'POST')
{
if(isset($_POST['Reservation']))
{
$subject = 'New Machu Picchu RESERVATION - November';
$emailadd = 'jodi@happywivestravel.com';
$url = 'http://www.happywivestravel.com/tour/machupicchu/mp-NOVconfirm.shtml';
$req = '0';
$text = "Results from form:'n'n";
$space = ' ';
$line = '
';
foreach ($_POST as $key => $value)
{
if ($req == '1')
{
if ($value == '')
{echo "$key is empty";die;}
}
$j = strlen($key);
if ($j >= 20)
{echo "Name of form element $key cannot be longer than 20 characters";die;}
$j = 20 - $j;
for ($i = 1; $i <= $j; $i++)
{$space .= ' ';}
$value = str_replace(''n', "$line", $value);
$conc = "{$key}:$space{$value}$line";
$text .= $conc;
$space = ' ';
}
mail($emailadd, $subject, $text, 'From: '.$emailadd.'');
echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">';
}
if(isset($_POST['Book']))
{
$subject = 'New Machu Picchu BOOKING - November';
$emailadd = 'jodi@happywivestravel.com';
$url = 'http://www.happywivestravel.com/';
$req = '0';
$text = "Results from form:'n'n";
$space = ' ';
$line = '
';
foreach ($_POST as $key => $value)
{
if ($req == '1')
{
if ($value == '')
{echo "$key is empty";die;}
}
$j = strlen($key);
if ($j >= 20)
{echo "Name of form element $key cannot be longer than 20 characters";die;}
$j = 20 - $j;
for ($i = 1; $i <= $j; $i++)
{$space .= ' ';}
$value = str_replace(''n', "$line", $value);
$conc = "{$key}:$space{$value}$line";
$text .= $conc;
$space = ' ';
}
mail($emailadd, $subject, $text, 'From: '.$emailadd.'');
echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">';
}
}
?>
但是我一定在这里做错了什么,因为当我点击提交按钮时什么也没有发生。没有重定向,没有表单数据发送。
我最初想让这个函数与captcha脚本一起工作,但我现在不得不放弃它。我只需要让这些提交按钮尽快正常工作。
我对php几乎一无所知,我对javascript非常熟悉(我在这里学习)。我真的很感激这里的任何帮助。谢谢你! !
这就是为什么jQuery是你最好的朋友!
两个带id的按钮。
<input type="button" id="btn1" value="Hold my reservation" class="submit">
<input type="button" id="btn2" value="Book Now!" class="submit">
然后你会用jQuery来检测两个按钮点击操作的ID,并在其中发送一个Ajax调用作为POST请求(表单提交),然后重定向!BOUM .
$('#btn1').click(function()
{
$.ajax(
{
url: "submit_script.php",
type: "POST",
data: {input1: input1, input2: input2},
dataType: "html",
success: function(data)
{
window.location = 'http://www.example.com/page.php';
}
});
});
$('#btn2').click(function()
{
$.ajax(
{
url: "submit_script.php",
type: "POST",
data: {input1: input1, input2: input2},
dataType: "html",
success: function(data)
{
window.location = 'http://www.example.com/page.php';
}
});
});
您可以在Ajax中发挥创意,并为每个字段发送您想要的任何输入字段。这就是你如何将它们分开,和/或将每个点击发送到不同的提交URL。
你也可以将数据传递给"page.php"在函数参数中使用data变量。
或
您可以检测您在提交表单中按下的按钮,只需将按钮重命名为名称,然后在提交页面的帖子中检测它。 以上解决方案请参考本页:
stackoverflow.com/questions/547821/two-submit-buttons-in-one-form
一个更简单的jquery方法:
$('#buttonid1').click(function() {
$('#formid').attr('action', '/path/page1/');
$('#formid').submit();
});
$('#buttonid2').click(function() {
$('#formid').attr('action', '/path/page2/');
$('#formid').submit();
});
你…为什么不在表单标签中添加按钮呢?用它来导航?
<form id="formid" action="link" method="post">
尝试将您的提交按钮命名为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">
- CORS-重定向到第二个GET正在接收的页面
- 在Jquery easyui中,多个选项卡提交按钮点击事件正在重定向到主页(第一个)选项卡
- 如何在 ajax 中使用 javascript 发送多个数据并将其重定向到欢迎页面
- 在两次java定时器循环后重定向访问者
- 用于提交基于多个变量重定向的表单的JavaScript
- 在Javascript或Jquery中使用多个变量重定向
- 一次选中4个复选框,然后将页面重定向到新页面
- 如何基于两个下拉菜单选择进行页面重定向
- 让窗口在一次单击触发两个页面重定向后保持焦点
- 如何同时重定向两个用户 AJAX XML
- 单个 Javascript 方法上的两个页面重定向
- 从一个网页重定向到另外两个网页
- 如何在asp.net和vb.net中单击删除按钮后向后重定向两步
- 设置单选按钮单击两个目的地(提交表单和重定向)
- jQuery重定向基于两个下拉菜单
- 设置两个选择选项和重定向一旦第一个被选中
- 如何在jquery中更新动态标签后重定向第二个html页面
- 重定向到网页取决于选择在两个选择下拉框
- 两个提交按钮的形式,每个重定向到不同的页面上点击
- 有两个按钮的桌子.一个jQuery-ajax不会'的<表>,而是重定向浏览器到ajax url