>编辑:感谢您的所有帮助。收到一封电子邮件,说我们不需要客户端,所以我放弃了这个想法,转而按时完成任务。
在你问之前,是的,这是作业。不,我不是在寻找某人的完整代码。我是一个初学者,几乎没有HTML/PHP/javascript的经验,但这是作业的第二部分,所以我已经从第一部分获得了一些自己的代码,与这部分相比非常容易。该任务没有具体说明我们必须使用客户端验证,但我觉得这将是很好的做法。
我需要有人清楚地告诉我如何使用客户端和服务器端验证。我已经有了javascript验证,但是我可以修改它,因为它为每个错误显示一个警报框。我不能使用像 jQuery 这样的第三方代码,显然互联网上的每个人都喜欢使用,而且我正在做的课程不喜欢实际教我们任何有用的内容,所以我们都靠自己。
然后,表单中的数据将通过MySQL输入数据库(我不期待这样做(,并且通过查看w3schools关于该主题的最少信息,我明白我必须将表单发布到自己。
表格本身非常简单:包含姓名,DoB,电子邮件,邮政编码等。我当前的.js仅使用 alpha、仅 num、日期格式、电子邮件格式、单选按钮和复选框检查,并且每个字段都经过测试以确保它不为空。
我想我所追求的是有关如何执行此操作的完整教程。我的互联网搜索没有结果,但至少我还有一个星期的时间。
任何帮助都是值得赞赏的,但简单明了的帮助会更是如此。在那之前,我将继续在互联网上徘徊寻求帮助,如果我为其他有相同问题的人找到有用的东西,我会发回这里(我敢肯定这是我班的 90%......
提前谢谢。
阅读下面的代码。希望内联评论回答您的问题。
add_record.php
<?php
if(isset($_POST['name'])) {
//get post data
$name = trim($_POST['person_name']);
$email = trim($_POST['email']);
$message = trim($_POST['message']);
//This is server-side check!
if (strlen($name) > 10){
echo "FAILED! You tried to submit a name which is greater than 10 chars."
}else{
//insert to the database here..
//and send out a "success message or render HTML
echo "SUCCESS!";
}
}else {
echo "Error! Proper parameters were not provided!";
}
答.html
<html>
<head>
<script type="text/javascript">
function checkForm(){
//client side (JS) validation. This happens before submitting.
var name = document.forms[0].person_name.value;
if (name.length > 10){
alert("Name is too long");
return false;
}
//do some more checks here..
//return true if all checks have passed, false otherwise.
//the return value of this function is checked before submit. The form is submitted only when this function returns a true.
return true;
}
</script>
</head>
<body>
<form action="add_record.php" method="POST" onsubmit="return checkForm()">
Name: <input type="text" name="person_name"/>
Email: <input type="text" name="email"/>
Message: <input type="text" name="message"/>
<input type="submit"/>
</form>
</body>
</html>
编辑:正如mplungjan指出的那样,在表单中包含一个名为"name"的字段不是一个好主意。表单对象本身可能具有可能冲突的"名称"。
既然是家庭作业,我至少应该给你指出一些资源:
客户端
对于验证:
- http://www.9lessons.info/2009/03/perfect-javascript-form-validation.html(表单验证器(
- http://www.javascriptkit.com/javatutors/re.shtml(正则表达式指南(
不要立即跳到 AJAX,这是高级材料。首先完成基础知识,然后让表单提交给 PHP(即,如果存在任何验证问题,页面刷新和 PHP 重新绘制表单(。
服务器端
用于验证:http://www.php.net/filter - 示例
对于数据库工作:http://www.php.net/pdo - 教程
对于服务器端验证,您可以使用method="post"将表单数据发送到php页面,然后检查格式是否正确。像这样:
<form action="validate.php" method="post">
<!-- form fields -->
</form>
在 validate.php 中,使用 $_POST["var_name"](其中 var_name 是输入字段的名称(来检查数据。因此,例如,例如:
$age = $_POST["age"];
if (ctype_digit($age) && $age > 0) {
// correct format
}
似乎您已经弄清楚了客户端验证。不过,我不太确定我是否正确理解了您的问题 - 让我知道您具体遇到问题的地方,我会尽力提供帮助。