Javascript 表单提交后无法重定向
我在HTML页面上有一个包含表单数据的表单,希望在用户按下提交按钮并通过电子邮件发送信息后,将其重定向到新的URL页面。使用以下按钮调用表单Javascript 表单提交后无法重定向,javascript,php,html,forms,redirect,Javascript,Php,Html,Forms,Redirect,我在HTML页面上有一个包含表单数据的表单,希望在用户按下提交按钮并通过电子邮件发送信息后,将其重定向到新的URL页面。使用以下按钮调用表单 <div class="btnp"><input type="submit" value="Continue to Billing" ></div> 然后表单通过post将数据发送到我的PHP文件。我不需要一个成功的回声消息,我只想把URL重定向到付款页面。下面是我设置的PHP文件。我正在尝试提交,发送带有表单日
<div class="btnp"><input type="submit" value="Continue to Billing" ></div>
然后表单通过post将数据发送到我的PHP文件。我不需要一个成功的回声消息,我只想把URL重定向到付款页面。下面是我设置的PHP文件。我正在尝试提交,发送带有表单日期的电子邮件,然后重定向到新的html url
<?php
//Retrieve form data.
//POST
$URL = "http://www.google.com";
$fname = $_POST['fname'];
$zip = $_POST['zip'];
$phone = $_POST['phone'];
$email = $_POST['email'];
//recipient - change this to your name and email
$to = 'sales@mysite.com';
//sender
$from = $fname . ' <' . $email . '>';
//subject and the html message
$subject = 'New User: ' . $fname;
$message = '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<table>
<tr><td>First Name</td><td>' . $fame . '</td></tr>
<tr><td>Zip</td><td>' . $zip . '</td></tr>
<tr><td>Telephone</td><td>' . $phone . '</td></tr>
<tr><td>Email</td><td>' . $email . '</td></tr>
</table>
</body>
</html>';
//send the mail
$result = sendmail($to, $subject, $message, $from);
if ($_POST)
if ($result) header('Location: '.$URL);
else echo 'Sorry, unexpected error. Please try again later';
//Simple mail function with HTML header
function sendmail($to, $subject, $message, $from) {
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$headers .= 'From: ' . $from . "\r\n";
$result = mail($to,$subject,$message,$headers);
}
?>
使用标题('Location:$url)代码>已尝试但将函数更正为以下内容的代码段:
header('Location: '.$URL);
只需确保定义了varibale$URL
。要使用“header”功能:
header("location: result.php");
您无法在屏幕上输出/打印/回显任何内容,请尝试以下操作:
if ($_POST)
if ($result) header("location: result-page.php");
else echo 'Sorry, unexpected error. Please try again later';
或者,您可以使用javascript打印成功消息并重定向:
if ($_POST)
if ($result) {
print "<script>alert('Ok, email sent');</script>";
print "<script>window.open('result-page.php','_self');</script>";
}else{
print 'Sorry, unexpected error. Please try again later';
}
if($\u POST)
如果($结果){
打印“通知(‘确定,已发送电子邮件’);”;
打印“window.open('result-page.php','u self');
}否则{
打印“抱歉,意外错误。请稍后再试”;
}
是否要使用jQuery/AJAX或Form POST提交表单?你两个都试试<代码>标题('位置:'。$url)如果您使用AJAX提交,代码>将不起作用。我可能错了,但因为我只使用POST方法,而没有调用GET,所以我没有使用AJAX,所以header方法应该可以正常工作?我不喜欢使用哪种方法,只要电子邮件发送时重定向成功。谢谢,我正在使用的一段代码调用GET,我应该删除它吗?我已经编辑了我的原始代码,试图压缩它并删除任何不必要的部分。同时尝试实现这里提供的功能。清理您的POST参数!好的,我在列表顶部定义了一个URL,在那里我通过post收集数据$URL=“”;然后我使用了header('Location:'.$URL);在文件的最底部,电子邮件仍然发送,但我没有被重定向。谢谢你们两位帮助我。继续使用表单顶部定义的URL,我尝试使用您给我的第一个选项if($\u POST)。。。但是我替换了标题(“location:result page.php”);带有标题('Location:'.$URL);我再次将这段代码放在最底部,发送但没有重定向。不过我还是试着把它搬来搬去。我想重定向到html页面。请在调用标头(“位置:.$URL”)之后使用“退出(0)”函数。。。因此,脚本将结束并重定向。