我有一个HTML表单,并与jQuery和PHP链接。 jQuery检查字段是否为空或如果它们不为空,则应将数据发送到PHP文件。但它不起作用。
$(document).ready(function() {
$("#submit").click(function() {
var name = $("#name").val();
var message = $("#message").val();
$("#returnmessage").empty(); // To empty previous error/success message.
// Checking for blank fields.
if (name == '') {
alert(" Please Fill your name");
} else if (message == '') {
alert("Please Fill message");
} else {
$.post("xxx.php", { // To php file.
name: name,
message: message
}, function(data) {
$("#returnmessage").append(data);
if (data == "We will contact you soon.") {
$("#form")[0].reset(); // To reset form fields on success.
}
});
}
});
});
<form name="form" method="post" action="">
<h4>FEED-BACK FORM</h4>
<p id="returnmessage"></p>
<label>Name: </label>
<input type="text" id="name" /><br>
<label>Message: </label>
<input type="text" id="message" /><br>
<input type="button" id="submit" value="Submit"/>
</form>
PHP代码是:
if(!isset($_POST['submit']))
{
//Need to submit the form.
exit;
}
$name = $_POST['name'];
$message = $_POST['message'];
$email_body ="Dear sir,\n".
"Name: $name\n".
"Message: $message\n";
//Email sending to
$email_from = 'xxx@xxx.xxx';
$email_subject = "my-form";
$to = "xxx@xxxx";
$headers = "From: $email_from \r\n";
//Send the email!
mail($to,$email_subject,$email_body,$headers);
答案 0 :(得分:0)
您正在使用此支票:
if (!isset($_POST['submit']))
这通常永远不会执行,因为你将POST
数据发送到服务器,以及每个浏览器如何接受它。特别是Chrome,不会POST
submit
。它主要取决于AJAX发送的数据,因此您需要查看它发送的内容:
使用:
代替您的代码if (count($_POST) == 0)
exit;
此外,请确保您已设置mail()
功能以使用SMTP或php.ini
中使用的功能。只有你可以检查你的控制台,服务器响应是什么。因此,请向您的客户提供更多详细信息:
if (mail($to, $email_subject, $email_body, $headers))
die("Success");
else
die("Failed");
以上部分将有助于诊断脚本出错的位置。同时,在退出第一部分之前,回复一条消息。而不是您的代码,使用:
if (count($_POST) == 0)
die("Need to POST");
同样在客户端,请确保使用最新或相当不错的jQuery版本(版本&gt; 1.9.1)。
看起来OP需要更详细的解释才能找到错误。可能对其他人有所帮助:
等待进一步的回复。
<强>更新强>
您正在检查success
方法:
if (data == "We will contact you soon.")
但是你在哪里发送它在PHP文件中?你需要在PHP文件的末尾。
echo "We will contact you soon.";
答案 1 :(得分:0)
我已经尝试过您的代码,但没有收到错误。运行代码。 哪个版本使用你的jQuery lib?
请你试试
jQuery lib 2.2 https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js
这个?
jQuery(document).ready(function() {
jQuery("#submit").click(function() {
var data_name = jQuery("#name").val();
var data_message = jQuery("#message").val();
jQuery("#returnmessage").empty(); // To empty previous error/success message.
// Checking for blank fields.
if (data_name == '' ) {
alert(" Please Fill your name");
} else if(data_message == '' ) {
alert("Please Fill message");
} else {
jQuery.post("xxx.php", { // To php file.
name: data_name, message: data_message
}, function(data) {
jQuery("#returnmessage").append(data);
if (data == "We will contact you soon.") {
jQuery("#form")[0].reset(); // To reset form fields on success.
}
});
}
});
});