ajax php验证php代码无法正常工作

时间:2014-01-17 13:40:23

标签: php ajax

  <?php
 if(isset($_POST["username"]) && $_POST["username"] != "")
  {
     $username= $_POST['username'];
    if (strlen($username) < 4) {
   echo '4 - 15 characters please';

  }
if (is_numeric($username[0])) {
 echo 'First character must be a letter';

}
 }
 ?>

php代码无效:请帮我验证使用java脚本或ajax

e<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=' loading.....';
   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);  
  }
}
}
</script>

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

所有代码工作正常只有PHP代码不工作请帮助我 当我们在文本框中输入一些文本时只加载..... 任何类型的验证都没有显示......

2 个答案:

答案 0 :(得分:0)

我认为你的问题在hr.readystatechange。您需要的是hr.onreadystatechange

答案 1 :(得分:0)

也许这不是解决方案,但你可以回显或print_r或在文件中从php中的浏览器收到的内容,看看$ _POST ['username']是否带有此名称而不是uname。

print_r($_POST);

你的代码已经很老了,现在你可以使用jquery来简化javascript和php,那里有很多框架可以让你的php变得简单。像onclick into html这样的标签已被弃用或非常接近。

如果你期望一个字符串

,那就更好了
$_POST["username"] !== ""

尝试将消息存储在一个变量中,并在php函数的末尾返回,最好只有一个退出而不是函数的多个。

下一次尝试将问题和代码整理好,以便于阅读和理解。

谢谢,对不起我的英文...... XD