【发布时间】:2016-10-11 04:40:07
【问题描述】:
我想在同一页面上显示成功消息,而不是将用户重定向到 .php 文件。
我不希望使用 AJAX 和 jQuery 过于复杂,并且我希望将 PHP 文件与表单的 HTML 文件分开。
是否可以为此使用少量的 Javascript?
这是我的代码;
HTML 表单
<div id="viewing-container">
<div id="viewing-header">
<h3 class="form-header">Request a Viewing</h3><button type="button" id="close" class="button-primary close-form" onclick="openClose()">˟</button>
</div>
<div id="viewing-content">
<div id="success">
<p class="form">Thank you for contacting us. We will be in touch soon.</p>
</div>
<p class="form">Please text or call Alex on <a href="">0123456789</a> for fastest response or enter your contact details below and we will call you back as soon as we can.</p>
<form action="" method="post" autocomplete="on">
<label for="name">Name <i>*</i></label><input type="text" name="name" autofocus required><br />
<label for="number">Contact Number <i>*</i></label><input type="tel" name="number" required><br />
<label for="message">Message <i>*</i></label><textarea type="textarea" name="message" rows="5" required>Please call me to arrange a viewing of one of your properties.</textarea><br />
<div class="g-recaptcha" data-sitekey="###"></div>
<br />
<button type="submit" name="contactSubmit" id="contactSubmit" class="button-primary">Send</button>
</form>
</div>
PHP提交代码
$name = $number = $message = "";
if(isset($_POST['contactSubmit'])){
$name = $_POST["name"];
$number = $_POST["number"];
$message = $_POST["message"];
$msg = "Name: " . $name . "\n" . "Number: " . $number "\n" . "Message:" . $message;
$msg = wordwrap($msg,70);
$subject = "Viewing Request";
mail("me@mysite.co.uk", $subject, $msg)
header("Location: /index.htm");
}
exit;
我曾尝试使用 onclick() Javascript 函数来显示成功,但表单会在显示 Javascript 函数之前重定向到 PHP 文件。我唯一能够开始工作的是一个 javascript 警报功能,但这不是很有吸引力或用户友好。我想显示成功消息并运行外部 php 文件而不重新加载 HTML 页面。
请帮忙!!我不是非常精通 PHP 或 Javascript :( 提前致谢。
【问题讨论】:
-
但是为什么呢?这可能是一个成功的重定向,但这并不意味着 php 函数会成功......
-
您通常会为此使用 AJAX 调用。您可以自己用 Javascript 编写一个,但如果 Jquery 和其他人已经为您完成了,为什么还要这样做呢?
-
如果没有 AJAX,您无法实现您想要的功能。
-
如果你想用你的网站做一些聪明的事情,那么你将不得不更熟练做到这一点的唯一方法是从浏览器调用 AJAX让 PHP 脚本运行,然后向您发送响应消息(好/坏)
标签: javascript php html forms submit