ajax和php检查用户名代码[关闭]

PHP :

if(isset($_POST["username"]) && $_POST["username"] != ""){
    $user= $_POST['username'];
    if(strlen($user<4)){
        echo"username must be 8 charter";
    }
}

JS :

function callme() {
     var showme = document.getElementById("show");
     var user = document.getElementById("uname").value;
     //for check new browser show ajax from
     if (user !== "") {
         showme.innerHTML = '<h1> loading.....</h1>';
         var hr = new XMLHttpRequest() {
             hr.open("post", "index.php", true);
             hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
             hr.readystatechange = function () {
                 if (hr.readystate == 4 && hr.status == 200) {
                     showme.innerHTML = hr.responseText;
                 }
             }
             var v = "username=" + user;
             hr.send(v);
         };
     }
}     

HTML :

<span>username:</span>
<input type="text" name="uname" id="uname"   onkeyup="callme();"/>
<div id="show"></div>

My code are not working, and not showing any errors.

The callme(); function is where I think the error is, which is processing username validation.

In Your code you have SyntaxError.

Please add } after function body. it's working

<?php
 if(isset($_POST["username"]) && $_POST["username"] != "")
  {
     $user= $_POST['username'];
    if(strlen($user)<4) /// your mistake in php code
  {
echo"username must be 8 charter";
  }
 }
 ?>

   <script type="text/javascript" language="javascript">
   function callme()
 {
var showme = document.getElementById("show");
var user = document.getElementById("uname").value;
    //for check new browser show ajax from
 if(user!=="")
 {
 showme.innerHTML='<h1> loading.....</h1>';
var hr = new XMLHttpRequest()
{
 hr.open("post","index.php",true);
   hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.readystatechange=function()
 {
  if(hr.readystate== 4 && hr.status==200) {
  showme.innerHTML= hr.responseText;
  }
  } 
  var v="username="+ user;
   hr.send(v);  
  }
}// you missed

</script>
  </head>
   <body>
 <span>username:</span>
  <input type="text" name="uname" id="uname"   onkeyup="callme();"/>
    <div id="show"></div>
    </body>

use following code

 <?php
 if(isset($_POST["username"]) && $_POST["username"] != "")
  {
     $user= $_POST['username'];
    if(strlen($user<4))
  {
echo"username must be 8 charter";
  }
 }
 ?>

   <script type="text/javascript" language="javascript">
   function callme()
 {
var showme = document.getElementById("show");
var user = document.getElementById("uname").value;
    //for check new browser show ajax from
 if(user!=="")
 {
 showme.innerHTML='<h1> loading.....</h1>';
var hr = new XMLHttpRequest()
{
 hr.open("post","index.php",true);
   hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.readystatechange=function()
 {
  if(hr.readystate== 4 && hr.status==200) {
  showme.innerHTML= hr.responseText;
  }
  } 
  var v="username="+ user;
   hr.send(v);  
  }
}
}// you missed the closing brace.
</script>
  </head>
   <body>
 <span>username:</span>
  <input type="text" name="uname" id="uname"   onkeyup=callme() />
    <div id="show"></div>
    </body>`enter code here`

your final code will be as,

PHP :

<?php
if(isset($_POST["username"]) && $_POST["username"] != ""){
    $user= $_POST['username'];
    if(strlen($user<4)){
        echo"username must be 8 charter";
    }
}
?>

JS :

function callme() {
     var showme = document.getElementById("show");
     var user = document.getElementById("uname").value;
     //for check new browser show ajax from
     if (user !== "") {
         showme.innerHTML = '<h1> loading.....</h1>';
         var hr = new XMLHttpRequest() 
         {
             hr.open("post", "index.php", true);
             hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
             hr.readystatechange = function () {
                 if (hr.readystate == 4 && hr.status == 200) {
                     showme.innerHTML = hr.responseText;
                 }
             }
             var v = "username=" + user;
             hr.send(v);
         };
     }
}     

you were missing one closing bracket } in the callme() function.