PHP检验表单的内容是否重复输入???

我想在一个添加的页面提交一个表单,提交表单时要判断某些文本框输入的内容是否在数据库中重复,如果是,弹出一个提示框,说“已存在”,返回提交的表单,并将光标放在该文本框内。

我尝试过写代码,曾在教JavaScript里写,但遇到了一个问题:不会在js的文件中写与数据库相连的代码;也曾在php里写,也遇到了一个问题:不会在php里写提示框和设置光标的代码。

请写出详细代码,最好解释一个!!!

总共需要两个文件.一个php文件一个html文件(内含ajax部分),注意php的保存名是固定的.

以下保存为getAjax.php
<?php
$a=array(
'a'=>1,
'b'=>2,
'c'=>3,
'd'=>4
);
if(isset($_GET["value"])){
if(isset($a[$_GET["value"]])){
echo $a[$_GET["value"]];
}
else{
echo 0;
}
}
?>

以下保存为putajax.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<script type="text/javascript">
//这个函数是从网上down的,用来创建ajax对象.没什么可说的
function createRequest(){
if(typeof XMLHttpRequest!="undefined"){
return new XMLHttpRequest();
}else if(typeof ActiveXObject!="undefined"){
var xmlHttp_ver=false;
var xmlHttp_vers=["MSXML2.XmlHttp.5.0","MSXML2.XmlHttp.4.0","MSXML2.XmlHttp.3.0","Microsoft.XmlHttp"];
if(!xmlHttp_ver){
for(var i=0;i<=xmlHttp_vers.length;i++){
try{
new ActiveXObject(xmlHttp_vers[i]);
xmlHttp_ver=xmlHttp_vers[i];
break;
}catch(oError){
;
}
}
}
if(xmlHttp_ver){
return new ActiveXObject(xmlHttp_ver);
}else{
throw new Error("Could not create XML HTTP Request.");
}
}else{
throw new Error("Your browser doesn't support an XML HTTP Request.");
}
}
//这个函数就是使用ajax对象连接php文件,并对返回的值处理
function getvalue(obj){
//创建ajax对象,来自于上面的函数
var xmlobject=createRequest();
//通过id属性获取文本框对象
obj=document.getElementById(obj);
//使用ajax对象连接getAjax.php,并把文本框的值传入,就和浏览器访问一样
//第一个参数声明 传送方法,可以是get或post
//第二个参数是访问地址
//第三个是 是不是需要异步,使用ajax效果需要为true
xmlobject.open("get","getAjax.php?value="+obj.value,true);
//这里是头信息发送后需要发送的内容,因为是get方式,所以这里不发送,如果为post,这里就是发送post的内容
xmlobject.send(null);
//onreadystatechange为ajax对象的回调函数,可以实时监测状态
xmlobject.onreadystatechange = function(){
//readyState=4时为 已准备好
if(xmlobject.readyState == 4) {
//status=200 状态为OK
if(xmlobject.status == 200){
//responseText为获取的php生成的文本,一下为一个判断,如果不为0,就是存在对应的值
if(xmlobject.responseText!=0){
alert("您输入"+xmlobject.responseText+"已存在");
}
else{
alert("恭喜,您输入的值可用");
}
}
}
}
}
</script>
</head>
<body>
<form name="frm" method="post" action="12312312">
<input type="text" name="v" id="v"/>
<input type="button" name="chk" value="测试" onclick="getvalue('v')"/>
</form>
</body>
</html>

将以上两个文件放在同一个目录并保证访问时php文件能被解析.

这个php里使用数组模拟出一个数据库表.如果单独访问php文件,需要传入一个value参数,根据这个参数程序输出内容.
如果使用ajax,你只需访问html文件,在文本框里填入值.(这里填入的值只要不是php数组里的键,就提示填入值可用,否则提示被占用)

php文件很简单,没做注释
html的ajax部分给你了详细注释,懂了就很简单了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-04
这个就是所谓的运用AJAX与数据库通讯,就可以检查数据库中是否有相同内容,比方说,现在最流行的注册提示就是这样的原理。
当你输入完内容,光标移开这个输入焦点,后端程序就调用PHP等程序去数据库查询,是否有相同内容,然后给出对应提示。
第2个回答  2010-05-04
你要实现在提交时提示,那就只能用ajax来实现了.具体代码可以在网上看
给你一参考的例子.我没有验证过例子的内容.你可以自己试试.

参考资料里是另一个例子.

参考资料:

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网