var xmlhttp=false;
function createxmlhttp(){
try{
xmlhttp=new xmlhttprequest();
}catch(trymicrosoft){
try{
xmlhttp=new activexobject(msxml2.xmlhttp);
}catch(othermicrosoft){
try{
xmlhttp=new activexobject(microsoft.xmlhttp);
}catch(failed){
xmlhttp=false;
}
}
}
if(!xmlhttp){
alert(无法创建 xmlhttprequest 对象!);
}
}
function ajaxcheck(){
var num=document.myform.uname.value;//获得表单的数据
var url=check.php?n=+num;
createxmlhttp();
xmlhttp.open(get,url,true);//这里的true代表是异步请求
xmlhttp.onreadystatechange=updatepage;
xmlhttp.send(null);
}
function updatepage(){
if(xmlhttp.readystate==4){
var response=xmlhttp.responsetext;
if(response==ok){
document.myform.nameerr.value=√;
return true;
}else if(response==no){
document.myform.nameerr.value=×用户名已占用;
return false;
}else{
document.myform.nameerr.value=服务器出现问题;
return false;
}
}
}
代码如上,我是用ajax检测用户名是否存在,在火狐中,要是英文母的名字,可以正常,要是中文名字就判断不出来了,怎么回事啊?????
------解决方案--------------------
应该是在ajaxcheck 发送请求的时候出错,可能是中文导致的问题,
你可以在check.php页面里面echo 用户名,看取到的是否是乱码, 如果是乱码的话用urlencode处理一下
------解决方案--------------------
var url=check.php?n=+num;
url=encodeuri(url);
------解决方案--------------------
在check.php页面里面echo 用户名,看取到的是否是乱码, 如果是乱码的话用urlencode处理一下
------解决方案--------------------
探讨
引用:数据库编码是什么?注册页面脚本编码是什么?两个是一致吗?,不一致的话得用iconv()函数将数据字符编码转换一下
我数据库里,数据库,表,字段都是用的gb2312,在check.php中也加入了mysql_query(set character set gb2312);