Javascript 使用ajax的PHP、jQuery、HTML表单不起作用
我尝试使用jQuery.post()方法将表单数据提交到php脚本,而不是接收php脚本数据并将其显示在表单页面上,但它不起作用。此外,我还使用jQuery验证插件进行客户端验证。以下是我的代码: Html: 和PHP:Javascript 使用ajax的PHP、jQuery、HTML表单不起作用,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我尝试使用jQuery.post()方法将表单数据提交到php脚本,而不是接收php脚本数据并将其显示在表单页面上,但它不起作用。此外,我还使用jQuery验证插件进行客户端验证。以下是我的代码: Html: 和PHP: if(!empty($_POST)) { $errors = array(); $name = $_POST['name']; $email = $_POST['email']; $subject = $_POST
if(!empty($_POST)) {
$errors = array();
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$url = $_POST['url'];
$message = $_POST['message'];
if(empty($name) || empty($email) || empty($subject) || empty($url) || empty($message)) {
$errors[] = 'All fields are required!';
} else {
if(filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
$errors[] = 'Please enter a valid email address';
}
if(ctype_alpha($name === false)) {
$errors[] = 'Name can only contain letters';
}
if (ctype_alpha($subject === false)) {
$errors[] = 'Subject can only contain letters';
}
if(filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED) === false) {
$errors[] = 'Please enter a valid url address with http in front';
}
if(empty($message)) {
$errors[] = 'Please enter a message';
}
}
if(!empty($errors)) {
echo '<ul style=\"list-style: circle; color: #f74d4e\">';
foreach($errors as $error) {
echo '<li style=\"color: #f74d4e;\"' . $error . '</li>';
}
echo '</ul>';
}
$send_message = 'From:' . $url . '<br>' . strip_tags(addslashes($message));
if(empty($errors)) {
mail('something@something.com', $subject, $send_message , $email);
echo '<h4 style=\"color: #f74d4e;\">Thank you for contacting me!</h4>';
exit();
}
}
if(!empty($\u POST)){
$errors=array();
$name=$_POST['name'];
$email=$_POST['email'];
$subject=$_POST['subject'];
$url=$_POST['url'];
$message=$_POST['message'];
if(empty($name)| | empty($email)| | empty($subject)| | empty($url)| | empty($message)){
$errors[]=“所有字段都是必需的!”;
}否则{
if(filter\u var($email,filter\u VALIDATE\u email)==false){
$errors[]=“请输入有效的电子邮件地址”;
}
if(ctype_alpha($name==false)){
$errors[]=“名称只能包含字母”;
}
if(ctype_alpha($subject==false)){
$errors[]=“主题只能包含字母”;
}
if(filter\u var($url,filter\u VALIDATE\u url,filter\u FLAG\u PATH\u REQUIRED)==false){
$errors[]=“请输入前面有http的有效url地址”;
}
if(空($message)){
$errors[]=“请输入消息”;
}
}
如果(!empty($errors)){
echo“;
foreach($errors作为$error){
echo’通过粗略检查代码,您似乎在这一行中添加了额外的右括号,如下所示:
function(data))
试一试
$.post('formular.php',$(this).serialize(),函数(数据){
反而
HTH请查看浏览器中的控制台日志(如果尚未启用开发人员工具,请启用开发人员工具!)。查看是否显示了任何错误。可能会为您提供有关它为什么不起作用的更多信息。另外,请确保直接检查您的php脚本,以确保您没有收到任何服务器500错误。只需尝试控制台并在p(jquery-3.2.1.min.js:2)处获得:VM491:5 Uncaught SyntaxError:Unexpected token)在XMLHttpRequest的A(jquery-3.2.1.min.js:4)在XMLHttpRequest(jquery-3.2.1.min.js:4)在A(jquery-3.2.1.min.js:4)在Qb(jquery-3.2.1.min.js:4)在Qb(jquery-3.2.1.min.js:4)在Object.send(jquery-3.2.1.min.js:4)在Function.ajax(jquery-3.2.1.min.js:4)在Function在Ja(jquery-3.2.1.min.js:3)将尝试使用不同版本的jquery。这不是你的jquery版本。请参见下面darthaditya给出的答案…语法错误。很好。我自己在查看时错过了这一点。函数(数据)的结尾paren必须在结尾curlybrac之后.是的,没错。我建议一个好的JSLint.com,或者至少为代码编辑器op使用的任何代码安装一个js linter插件。刚刚修复了它,但它仍然没有表现出应有的行为…顺便说一句,非常好,谢谢:)还发现了.ready的结尾是“};”;“当它应该是“};”.我已将其标记为已解决,将尝试不同的方法…谢谢您的查看:)
$(document).ready(function(){
$('form').on('submit', function(event) {
event.preventDefault();
$.post('formular.php', $(this).serialize(), function(data)) {
var dataForm = data;
$("#returned").append(dataForm);
}
});
)};
if(!empty($_POST)) {
$errors = array();
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$url = $_POST['url'];
$message = $_POST['message'];
if(empty($name) || empty($email) || empty($subject) || empty($url) || empty($message)) {
$errors[] = 'All fields are required!';
} else {
if(filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
$errors[] = 'Please enter a valid email address';
}
if(ctype_alpha($name === false)) {
$errors[] = 'Name can only contain letters';
}
if (ctype_alpha($subject === false)) {
$errors[] = 'Subject can only contain letters';
}
if(filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED) === false) {
$errors[] = 'Please enter a valid url address with http in front';
}
if(empty($message)) {
$errors[] = 'Please enter a message';
}
}
if(!empty($errors)) {
echo '<ul style=\"list-style: circle; color: #f74d4e\">';
foreach($errors as $error) {
echo '<li style=\"color: #f74d4e;\"' . $error . '</li>';
}
echo '</ul>';
}
$send_message = 'From:' . $url . '<br>' . strip_tags(addslashes($message));
if(empty($errors)) {
mail('something@something.com', $subject, $send_message , $email);
echo '<h4 style=\"color: #f74d4e;\">Thank you for contacting me!</h4>';
exit();
}
}
$.post('formular.php', $(this).serialize(), function(data)) {