<table><tr>
<td>姓名</td>
<td><input type="text" name="uname" id="uname" maxlength="30"></td>
<td>学号</td>
<td><input type="text" name="unum" id="unum" maxlength="12"></td>
<td>身份证号码</td>
<td><input type="text" name="idnum" id="idnum" maxlength="18"></td>
<td></td>
<td><input type="button" name="idcheck" value="检测" onclick="idcheck()"></td>
</tr></table>
var xmlHttp;
function createXMLHttpRequest(){
if (window.ActiveXObject){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}
}
function idcheck(){
//document.getElementByName(delbname).disabled=false;
var uname=document.getElementById('uname').value;
var unum=document.getElementById('unum').value;
var idnum=document.getElementById('idnum').value;
alert('1');
createXMLHttpRequest();
alert('2');
var url="idcheck.ajax.php";
var postStr="uname="+uname;
xmlHttp.open("POST",url,true);
alert('21');
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
alert('22');
xmlHttp.send(postStr);//奇怪的是:执行这一句时,就会跳出一个windows的登陆框郁闷。为什么呢?
alert('23');//程序执行到这边就停了。
xmlHttp.onreadystatechange = function() { 
alert('3');
    //如果执行状态成功,那么就把返回信息写到指定的层里
    if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
res=xmlHttp.responseText;
alert('4');
//alert(res);
//resarr=res.split('ChEN1yA');
if(res=='0') 
{
alert('认证失败!');
//document.getElementByName("deldact"+id).disabled=true;
}else{
alert('认证通过');
//document.getElementByName("deldact"+id).disabled=true;
}

}
}这个是idcheck.ajax.php文件$db_host="localhost";
$db_user="root";
$db_password="*****";
$db_port="3306";
$db_name="jy_sztz1";
$dbh=mysql_connect("$db_host:$db_port","$db_user","$db_password");
mysql_select_db("$db_name");
$str='0';
$uname=$_POST['uname'];
$unum=$_POST['unum'];
$idnum=$_POST['idnum'];
mysql_query("set names utf8");  
$sql="select * from sztz_members where unum='$unum'";
$res=mysql_query($sql);
 if (mysql_num_rows($res)>0){
         $row=mysql_fetch_array($res);
         if (($uname==$row['uname'])&&($idnum==$row['idnum'])){
 $str='1';
}else{
 $str='0';}
   }else{
         $str='0';}
echo $str;奇怪的就在send()那一行,会出来登陆框,是啥问题呢?

解决方案 »

  1.   

    你的ajax函数有问题,你可以重新找一个封装的ajax函数
    这是我用的,你可以参考//Ajax
    function Ajax(){
    var _xmlHttp = null;
    this.createXMLHttpRequest = function(){try{if (window.ActiveXObject){_xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");}else if (window.XMLHttpRequest){_xmlHttp = new XMLHttpRequest();}}catch(e){alert(e.name +" : " + e.message);}}
    this.backFunction = function(_backFunction){if(_xmlHttp.readyState == 4){if(_xmlHttp.status == 200){_backFunction(_xmlHttp.responseText);}}_xmlHttp.onreadystatechange = null;}
    this.doPost = function(_url,_parameter,_backFunction){try{_xmlHttp.open("POST",_url, false);_xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");_xmlHttp.send(_parameter);}catch(e){alert(e.name +" : " + e.message);}}
    this.doGet = function(_url,_parameter,_backFunction){try{var _random = Math.round(Math.random()*10000);_xmlHttp.open("GET", (_url+"?random=" +_random +"&" + _parameter), false);_xmlHttp.send(null);}catch(e){alert(e.name +" : " + e.message);}}
    this.ajaxRequest = function(_url,_parameter,_method,_backFunction){try{this.createXMLHttpRequest();if(_method.toLowerCase() == "post"){this.doPost(_url,_parameter,_backFunction);}else{this.doGet(_url,_parameter,_backFunction);}try{_xmlHttp.onreadystatechange = this.backFunction(_backFunction);}catch(err){}}catch(e){alert(e.name+" : "+e.message);}}
    }//Ajax修改排序值
    function Rank(ID,Val,Table){
    if(ID==''){return false;}
    if(Val==''){return false;}
    var url = "welcome.php?work=rank";
    var parameter = "Id="+ID+"&Val="+Val+"&Table="+Table+"";
    var method = "post";
    new Ajax().ajaxRequest(url,parameter,method,callBack);
    function callBack(xml){window.location.reload();}
    }
      

  2.   

    那么,send后为什么会出现登录框呢?
      

  3.   

    弹出登陆框的原因可能在php文件里面,因为ajax那边的代码是我一直用的,没啥问题。
      

  4.   

    onreadystatechange 写在open之前,看下服务器返回状态。
    或者try ...catch一下 看下错误在哪呵呵 我也是个新手,以上仅供参考