第一次发布海报,长时间阅读,所以我会明白这一点。
我正在为一所学校的项目工作,这个问题远远超出了项目的要求,但一旦完成,它就会显得很棒。我有3段不合作的代码 - 一段html / php,一段php和javascript。
我的代码的最终目标是: 这是表格,提交您的电子邮件,如果它是@ trnty.edu地址(我的学校),请提交表格。 目前的问题是表单提交空白数据 - 证明我的SQL服务器上有许多空行。
我已经测试了手动设置变量,它确实有效(通过emailsubmit.php代码),emailcheck.js代码确实检查了一个正确的电子邮件,但他们没有&#39正确地互相交谈。
你会介意帮我一把吗?我已经通过谷歌搜索这个(和其他)网站大约3周了,寻找可能的解决方案。非常感谢! (我的主页上的表格代码)
<div id="signupform">
<form id="signup" action="scripts/emailsubmit.php" method="POST">
<input type="email" name="email" placeholder="school email address" />
<button id="sub">Submit</button>
</form>
我目前的Javascript - 我不知道填写空白的内容是什么或如何...
$(function(){
$('#signup').submit(function()
{
if(validateEmail($('input').val()))
{
return true;
}
else
{
return false;
}
});
function validateEmail(email)
{
var re = /^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/;
if (re.test(email))
{
if (email.indexOf('@trnty.edu', email.length - '@trnty.edu'.length) !== -1)
{
//alert('Submission was successful.'); //if true, submit form -- see video
return true;
}
else
{
alert('Email must be a Trinity email address (your.name@trnty.edu).');
return false;
}
}
else {alert('Not a valid e-mail address.');}
}
});
Myphp代码。
<?php
$dbhost = 'localhost';
$dbuser = 'service';
$dbpass = '!@#$%';
$db = 'tbv_main';
$con = mysqli_connect($dbhost,$dbuser,$dbpass,$db);
//$email = $_POST['email'];
//$email = 'itworked@kickass.net';
$sql = "INSERT INTO stage1 (email, counter) VALUES ('$email', NULL)";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "Email: $email , 1 record added";
?>
答案 0 :(得分:1)
您的jQuery .submit()
正在取消使用return false;
的默认表单提交,但是没有ajax将数据发送到服务器,因此您实际要做的是在否定警报后返回false,并且在regexp通过时返回true,然后在提交函数中检查它。
$('#signup').submit(function() {
if(validateEmail($('input').val())){
return true;
}else{
return false;
}
});
然后在验证功能中。
var re = /^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/;
if (re.test(email)) {
if (email.indexOf('@trnty.edu', email.length - '@trnty.edu'.length) !== -1)
{
//alert('Submission was successful.'); //if true, submit form -- see video
return true;
}
else {
alert('Email must be a Trinity email address (your.name@trnty.edu).');
return false;
}
} else {
alert('Not a valid e-mail address.');
return false;
}
return false;
这样,当正确验证正则表达式并且页面将刷新导致您的PHP代码触发时,您的表单将会提交。