先上html代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<title>jquery用户名动态验证</title>
<script type="text/javascript" src="jquery-1.7.2.js"></script>
<script type="text/javascript">
$(function(){
$("#username").focus(function(){
$(this).addClass("bgcolor").next().siblings().html("");
}).blur(function(){
$(this).removeClass("bgcolor").next().siblings().html("");
var username = $(this).val();
if(username.indexOf(' ')>=0){
$("#u_error").html("*不能输入空格");
}else{
var username_len = $(this).val().length;
if (username_len < 1)
{
$("#u_error").html("*用户名不能为空");
}else if (username_len < 3)
{
//alert($username_len);
$("#u_error").html("*用户名的长度不能小于3位");
}else{
$.ajax({
type: 'POST',
url: 'user_check.php',
data: {'username':username},
dataType:'json',
success:function(data){
if(data['ok']==1){
$("#u_error").html("*用户名存在,请输入其他用户名进行注册");
}else if(data['ok']==0){
$("#u_error").html("*用户名合法");
}
}
});
}
}
});
});
</script>
<style type="text/css">
.check{
margin-left: 100px;
margin-top: 200px;
}
.bgcolor{
background-color: pink;
}
.u_error{
color: red;
}
</style>
</head>
<body>
<form>
<div class="check">
<span>用户名:<input type="text" id="username" name="username"/></span>
<span id="u_error" class="u_error"></span>
</div>
</form>
</body>
</html>
再上php代码:
<?php
/*
*@Author:细高
*@Description:通过jquery和数据库联合验证用户名(jquery代码在html页面)
*@Time:2013-12-18 15:02
*/
header("Content-type:text/html; charset:utf-8");
//连接数据库
$link = mysql_connect("localhost","root","wulingao") or die("数据路连接错误!");
mysql_select_db("username") or die("数据库选择错误");
mysql_query("set names 'utf8'");
//判断要接收内容
$username = trim($_POST["username"]);//trim()函数的作用是去掉字符串两边的空白
//拼装sql查询语句
$sql = "SELECT * FROM test WHERE name='{$username}';";
//$sql = "SELECT * FROM test WHERE name REGEXP '{$username}';";
//查询
$result = mysql_query($sql);
$rows = mysql_num_rows($result);
if($rows >= 1){
$data['ok'] = 1;
}else if($rows < 1){
$data['ok'] = 0;
}
//print_r($data['ok']);
echo json_encode($data);
//exit(json_encode($data));
?>
<?php
/*
*@Author:细高
*@Description:想数据库中写入中文信息
*@Time:2013-12-18 15:02
*/
header("Content-type:text/html; charset:utf-8");
//连接数据库
$link = mysql_connect("localhost","root","root") or die("数据路连接错误!");
mysql_select_db("username") or die("数据库选择错误");
mysql_query("set names 'utf8'");
$insert ="insert into test(name) values('法拉利');";
$result = mysql_query($insert);
$row = mysql_affected_rows();
//echo $row."<br>";
$sql = "SELECT * FROM test WHERE name='法拉利';";
//查询
$result = mysql_query($sql);
$rows = mysql_num_rows($result);
//echo $rows;
?>
数据库效果:
Navicat for MySQL效果:
最后总结一下吧:
1:断断续续弄了很久,终于弄出来了。不够完善。但幸好中英文用户名都能查询。这里只展示中文用户名。
2:从dos窗口中存放中文这个问题,我向很多人请教了很久,虽然现在还是没有弄好,但还是很感谢php技术交流群(Q群)的热心大神们。
3:退后一步,通过一个php页面存放中文信息到数据库中。但是就算在mysql数据库和php页面等等的字符集都设置为utf8的情况下,在dos窗口中中文还是乱码显示。但是在Navicat for MySQL 却正常显示。真心不知道是什么问题了。知道的大神们请指点。万分感谢。