返回空白电子邮件的联系表
Contact form returning blank email
出于某种原因,我的 Foundation 5 联系表返回空白电子邮件。 javascript 是正确的,但我看不出我的 PHP 文件有任何问题。我究竟做错了什么?这是 PHP:
<?php
$name = $_POST["t_name"];
$email = $_POST["t_email"];
$message = $_POST["t_message"];
$msg = "
Name: $name
Email: $email
Commments:
$message
";
$to = "me@me.com";
$subject = "From My Site";
$message = $msg;
mail($to,$subject,$message,$headers);
?>
HTML:
<div id="contactForm" class="large-6 large-offset-6 columns">
<form id="t-contact-form" method="post" data-abide="ajax">
<small class="error">Your full name is required.</small>
<input name="t_name" id="t_name" type="text" placeholder="Full Name" required>
<small class="error">An email address is required.</small>
<input name="t_email" id="d_email" type="email" placeholder="username@address.com" required>
<small class="error">Your message is required.</small>
<textarea name="t_message" id="d_message" placeholder="Enter your message here" required></textarea>
<button class="contact-submit submit">Submit</button>
</a>
</form>
</div>
和 js:
$('#t-contact-form').on('valid.fndtn.abide', function() {
var t_name = $("input#t_name").val();
var t_email = $("input#t_email").val();
var t_message = $("textarea#t_message").val();
// Data for response
var dataString = 'name=' + t_name +
'&email=' + t_email +
'&message=' + t_message;
//Begin Ajax Call
$.ajax({
type: "POST",
url: "assets/php/t-mail.php",
data: dataString,
success: function() {
$('#t-contact-form').html("<div id='success'></div>");
$('#success').html("<h2>Thanks!</h2>")
.append("<p>Dear" + t_name + "!, I look forward to working with you.</p>")
.hide()
.fadeIn(1500);
},
}); //ajax call
return false;
});
AJAX 呼叫发送使用 name
而不是 t_name
,email
和 message
也是如此。它最初在 HTML 中的命名方式与 PHP 无关,只有发布的数据才重要。
var dataString = 'name=' + t_name +
'&email=' + t_email +
'&message=' + t_message;
所以在 PHP 你应该做
<?php
$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];
此外,您通过 ID 获取输入,但使用 JavaScript 中的名称。在 HTML 中将它们重命名为 t_email
和 t_message
或修改 JavaScript.
<input name="t_email" id="t_email" type="email" placeholder="username@address.com" required>
<textarea name="t_message" id="t_message" placeholder="Enter your message here" required></textarea>
在 js 中
在第三行中,将#t_email 更改为#d_email,它将起作用
出于某种原因,我的 Foundation 5 联系表返回空白电子邮件。 javascript 是正确的,但我看不出我的 PHP 文件有任何问题。我究竟做错了什么?这是 PHP:
<?php
$name = $_POST["t_name"];
$email = $_POST["t_email"];
$message = $_POST["t_message"];
$msg = "
Name: $name
Email: $email
Commments:
$message
";
$to = "me@me.com";
$subject = "From My Site";
$message = $msg;
mail($to,$subject,$message,$headers);
?>
HTML:
<div id="contactForm" class="large-6 large-offset-6 columns">
<form id="t-contact-form" method="post" data-abide="ajax">
<small class="error">Your full name is required.</small>
<input name="t_name" id="t_name" type="text" placeholder="Full Name" required>
<small class="error">An email address is required.</small>
<input name="t_email" id="d_email" type="email" placeholder="username@address.com" required>
<small class="error">Your message is required.</small>
<textarea name="t_message" id="d_message" placeholder="Enter your message here" required></textarea>
<button class="contact-submit submit">Submit</button>
</a>
</form>
</div>
和 js:
$('#t-contact-form').on('valid.fndtn.abide', function() {
var t_name = $("input#t_name").val();
var t_email = $("input#t_email").val();
var t_message = $("textarea#t_message").val();
// Data for response
var dataString = 'name=' + t_name +
'&email=' + t_email +
'&message=' + t_message;
//Begin Ajax Call
$.ajax({
type: "POST",
url: "assets/php/t-mail.php",
data: dataString,
success: function() {
$('#t-contact-form').html("<div id='success'></div>");
$('#success').html("<h2>Thanks!</h2>")
.append("<p>Dear" + t_name + "!, I look forward to working with you.</p>")
.hide()
.fadeIn(1500);
},
}); //ajax call
return false;
});
AJAX 呼叫发送使用 name
而不是 t_name
,email
和 message
也是如此。它最初在 HTML 中的命名方式与 PHP 无关,只有发布的数据才重要。
var dataString = 'name=' + t_name +
'&email=' + t_email +
'&message=' + t_message;
所以在 PHP 你应该做
<?php
$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];
此外,您通过 ID 获取输入,但使用 JavaScript 中的名称。在 HTML 中将它们重命名为 t_email
和 t_message
或修改 JavaScript.
<input name="t_email" id="t_email" type="email" placeholder="username@address.com" required>
<textarea name="t_message" id="t_message" placeholder="Enter your message here" required></textarea>
在 js 中 在第三行中,将#t_email 更改为#d_email,它将起作用