我不是 100% 理解你的问题,但会尽力回答。我相信您指的是如何通过 PHP 验证表单提交的值。
您可以使用标准的 POST 或 GET 以不使用 jQuery 的旧方式执行此操作
表单.html
<html>
<head>
<title>Form Page</title>
</head>
<body>
<form action="validation.php" method="POST">
<input type="text" name="email" />
</form>
</body>
</html>
验证.php
<?php
$email = $_POST['email'];
//any validation here (this validates if email has @ sign)
$is_valid = strpos($email, "@");
if($is_valid === false){
//@ sign is not in string thus email is invalid, send message
echo "Error";
} else{
//is valid
echo "Valid";
}
?>
$_POST 用于接收已发布的变量。$_GET 用于接收通过 GET 方法发送的变量。GET 方法通过 url 作为查询字符串发送数据。因此,它不应该用于敏感信息,因为这会带来安全风险。
您还可以使用使用 AJAX 的更新的 jQuery 方法,这样它就不会重新加载整个页面来进行验证。
form_jquery.html
<html>
<head>
<title>Form Page</title>
<script src="http://code.jquery.com/jquery-1.9.0.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$("form").submit(function(){
//do javascript validation here
//do php validation here
$.post("validation.php", {email: $("#email").val()}, function(data){
alert(data); //validation msg
}, "text");
});
});
</script>
</head>
<body>
<form>
<input id="email" type="text" name="email" />
</form>
</body>
</html>
如果客户端禁用了 JavaScript,则无法使用 JavaScript 客户端验证或 jQuery(jQuery 是一个 JavaScript 框架)。您只能使用服务器端。
响应此代码:
if(isset($code) && $code == 1)
isset 检查 $code 是否有值(即不为空), $code == 1 检查 $code 是否等于 1。如果满足该条件,它将 CSS 类“错误”分配给输入文本框给它一个红色边框。
应用您的示例,jQuery 将最适合您。
name_jquery.html
<html>
<head>
<title>Form Page</title>
<script src="http://code.jquery.com/jquery-1.9.0.min.js" type="text/javascript"></script>
<style type="text/css">
.error{border:1px solid red; }
</style>
<script type="text/javascript">
$(document).ready(function(){
$("form").submit(function(){
//do javascript validation here
//do php validation here
$.post("validation.php", {email: $("#name").val()}, function(data){
if(data.error == "1"){ //1 means error
$("#name").addClass("error");
$("body").append("<p id=\"error\">"+data.message+"</p>");
} else{
alert('your form is valid');
//clear css error class in case was invalid before
$("#name").removeClass("error");
$("#error").remove();
}
}, "json");
});
});
</script>
</head>
<body>
<form>
<input id="name" type="text" name="name" />
</form>
</body>
</html>
验证.php
<?php
$name=trim($_POST["name"]);
if(empty($name)) {
$error= "error : You did not enter a name.";
$code= "1" ;
} else{
$code = "0";
}
echo json_encode("error"=> $code, "message"=>$error);
?>