Javascript 如何使用php重定向按钮单击
我正在使用表单上的按钮。在成功提交用户信息后,我正在尝试通过单击按钮重定向到另一个页面。除了重定向之外,其他一切都正常工作。这是我试过的代码 Html代码:Javascript 如何使用php重定向按钮单击,javascript,php,html,Javascript,Php,Html,我正在使用表单上的按钮。在成功提交用户信息后,我正在尝试通过单击按钮重定向到另一个页面。除了重定向之外,其他一切都正常工作。这是我试过的代码 Html代码: 现在给我看看! 如果要重定向到新站点,则需要在头位置设置绝对地址,包括协议(https://) header("Location: https://www.google.com") 如果没有协议,则假定位置是相对的,并将附加到现有域 此外,您不应在标题后回显任何内容。设置标题时,可能需要写入整个url: header("Locatio
现在给我看看!
如果要重定向到新站点,则需要在头位置设置绝对地址,包括协议(https://
)
header("Location: https://www.google.com")
如果没有协议,则假定位置是相对的,并将附加到现有域
此外,您不应在标题后回显任何内容。设置标题时,可能需要写入整个url:
header("Location: http://www.google.com");
这实际上是没有必要的 在HTML
表单
标记的内部,将要发布数据的位置添加到操作属性的内部
<form role="form" id="contact-form" method="get" action="postpage.php"> <!-- notice the action attribute !-->
试试这个
echo '<meta http-equiv=REFRESH CONTENT=0;url=./yourDestination.php>';
echo';
正如我们在代码中看到的,页面将刷新到您声明的url
“Content=0”表示它将在0秒后刷新
如果你愿意,你可以修改号码 您不能从PHP重定向ajax请求,而是使用以下方法:
$(function() {
$("#contact-form").submit(function(e) {
e.preventDefault();
e.stopImmediatePropagation();
form = $(this);
data = $(this).serialize();
$.post("contact.php", data, function(response) {
form.trigger('reset');
//Redirection
window.location.href = "https://www.google.com";
});
});
});
只需删除此标题(“位置:https://www.example.com");代码>来自您的PHP
我希望这将对您有所帮助。我想知道为什么您设置了form method=“get”,但在php代码下使用了$\u POST变量。这是另一个使用POST方法的版本,如果有帮助,请尝试
<?php
ini_set("SMTP","ssl://smtp.gmail.com");
ini_set("smtp_port","465");
if (isset($_POST['email'])) {
$email = $_POST['email'];
$address= $_POST['address'];
$subject = "Message from: ".$email;
$content = "Email: " . $email."\n"
. "Address: " . $address;
$headers ='Reply-To: ' . $email . "\r\n";
mail('example@gmail.com', $subject ,$content, $headers );
header("location: https://google.com");
exit;
}
?>
<form role="form" id="contact-form" method="post">
<div class="form-group row">
<input type="email" id="email" name="email" placeholder="Enter your email" required="required" class="form-control input-lg" />
<input type="text" id="address" name="address" placeholder="Enter your address" required="required" class="form-control input-lg" />
<button type="submit" class="btn btn-t-primary">Show Me Now!</button>
</div>
</form>
现在给我看看!
首先,您必须编写处理Ajax请求的PHP代码:
if (isset($_POST['ajax_request'])) {
// write code;
echo "http://www.example.com"; // redirect url
}
Javascript:
jQuery(document).ready(function($) {
$.post('/path/to/file.php', {"ajax_request": true}, function(data, textStatus, xhr) {
window.location.href = data; // http://www.example.com
});
});
希望这有帮助。此示例代码与javascript无关。真正的问题是什么!提交表单时会发生什么情况?在发出重定向标题后不要回显任何内容。事实上,它之后唯一的事情应该是立即退出代码>以防止执行任何进一步的代码。当我单击按钮时,它会通过电子邮件发送信息,但不会重定向到任何地方。与问题本身无关,但如果这将是生产代码,请正确检查您的用户输入,以防邮件头插入。我认为OP已经做到了这一点!我很好奇为什么它不起作用!更新我的答案以反映问题。是的!但即使使用标题(“Location:www.google.com”)
它仍然会重定向到http://op-domain/www.google.com
!是的,因为它缺少我在回答中提到的协议。我不认为这是真正的问题,因为很容易注意到这一点!相反,我认为在标题
之前有某种输出,特别是来自邮件
功能。在这个问题上,他们想重定向到google.com
,所以,在这种情况下,这是行不通的,因为谷歌不会在页面上处理帖子。@Soviut他们想在下一个页面上向某人发送邮件后重定向到谷歌。他们不想让谷歌来处理这篇文章。仍然有可能发送空白电子邮件(因为没有设置$u post变量)。你可以检查你的收件箱来验证这一点。顺便说一句,是吗example@gmail.com您的真实电子邮件地址?:)哦,刚才注意到您还使用Javascript发布表单,因此它正在设置post变量。然而,在我的示例中,我将表单和php代码放在一个文件中,因此提交表单时不需要Javascript。请调整最适合您的方法。是否有任何方法可以使用php执行此操作?@WaseemBarcha是的,您可以,但您必须使用经典方法(不使用ajax)发送数据,标题(…)
将重定向页面。