利用ajax请求php,由php来检查姓名是否存在。

解决方案 »

  1.   

    例子。ajax网上的例子很多,随便google哈一大堆,
    原理就是 input框失去焦点后ajax提交,然后php处理返回json之类的,然后js在操作显示提示
      

  2.   

    我最近也在研究,分享下:
    文件1、(conn.php) 代码如下:
    <?php
    $conn = mysql_connect('localhost','数据库用户名','数据库密码');
    mysql_select_db('数据库名',$conn);
    ?>文件2、(a.html)代码如下:
    <form action="b.php" method="post" >
    <table>
          <tr>
               <td>用户名:</td>
               <td><input type="text" name="name" onblur="check(this.value)"></td>
               <td id="name">&nbsp;</td>
          </tr>
          <tr>
               <td colspan="3"><input type="submit" value="提交" name="sub"></td>
          </tr>
    </table>
    </form>
    <script>
    var xmlHttpfunction check(str){

    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
      {
      alert ("Browser does not support HTTP Request")
      return
      } 
    var url="a.php"
    url=url+"?n="+str
    url=url+"&sid="+Math.random()
    xmlHttp.onreadystatechange=stateChanged 
    xmlHttp.open("GET",url,true)
    xmlHttp.send(null)
    } function stateChanged() 

    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
     { 
     document.getElementById("name").innerHTML=xmlHttp.responseText 
     } 
    }
    function GetXmlHttpObject()
    {
    var xmlHttp=null;try
     {
     // Firefox, Opera 8.0+, Safari
     xmlHttp=new XMLHttpRequest();
     }
    catch (e)
     {
     // Internet Explorer
     try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
     catch (e)
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
     }
    return xmlHttp;
    }
    </script>文件3、(a.php) 代码如下:<?php
    include "conn.php";
    $sql = 'select * from user';//user为你的数据库名,自己修改
    $res = mysql_query($sql);
    while($row=mysql_fetch_assoc($res)){
    $u_name[]= $row['name'];//$row['name']里面的name为你数据库字段名

    }
    $name = $_GET['n'];
    if(in_array($name,$u_name)){
    echo "此用户名已被注册请输入新的用户名!</font>";
    }else{
    echo "可以使用";
    }
    ?>文件4、(b.php)代码如下:
    <?php
    include "conn.php";
    if(isset($_POST['sub'])){
        $sql = "insert into user(name) value ($_POST['name'])";
        $result = mysql_query($sql);
        if($result){
            echo "成功!";
        }
    }
    ?>
      

  3.   

    不知道楼主用过jquery没有,如果用过或者想用的话我可以给详细方案。function check(){
    var name=$("#name").val();
    $.post("checkUser.php",{name:name},function(result){
       if(result==1){
          alert('已经存在用户名');
          return false;
        }
    });
    }checkUser.php
    $sql="select * from user where name=".$_POST['name'];
    $resut=mysql_query($sql);
    if($result){
      echo 1;exit;
    }
      

  4.   

    得用jquery post和php很好解决这个,现在很多注册页面都是这样做!
      

  5.   

    感谢LS各位大虾的帮助,问题解决了。我用的是Ajax。