喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

$5.95 Web Hosting     

上一主题 下一主题
     
标题: 一个简单的验证问题  
 
yhbsww
新手上路
Rank: 1



UID 73324
精华 0
积分 7
帖子 6
金钱 7 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-5-13
来自 天上人间
状态 离线
[广告]: 代充Paypal帐号美元
一个简单的验证问题

我正在看Ajax,里面的第一个例子就是简单的验证,不过服务器端是用serverlet实现的。我改用PHP,但是还是存在问题,感觉是PHP文件出现的问题,希望大家帮我看看这是怎么回事儿,谢谢了!

validation.html


<html>
<head>
<title>Using Ajax for validation</title>
</head>
<script language="javascript" type="text/javascript">
var xmlHttp;

function createXMLHttpRequest()
{
  if(window.ActiveXObject)
  {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  else if(window.XMLHttpRequest)
  {
    xmlHttp=new XMLHttpRequest();
  }
}

function validate()
{
  createXMLHttpRequest();
  var date=document.getElementById("birthDate");
  var url="validationserver.php?birthDate="+escape(date.value);
  
  xmlHttp.onreadystatechange=handleStateChange;
  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);
}

function handleStateChange()
{
  if(xmlHttp.readyState==4)
  {
    if(xmlHttp.status==200)
    {
      var mes=xmlHttp.responseXML.getElementsByTagName("message")[0].firstChild.data;
      var val=xmlHttp.responseXML.getElementsByTagName("passed")[0].firstChild.data;
      
      /*
      var mes="this is a test!";
      var val=false;
      */
      setMessage(mes,val);
    }
  }
}

function setMessage(mes,val)
{
  var messageArea=document.getElementById("dateMessage");
  var fontColor="red";
  
  if(val=="true")
  {
    fontColor="green";
  }
  
  messageArea.innerHTML="<font color="+fontColor+">"+mes+"</font>";
}
</script>
<body>
  <h1>Ajax Validation Example</h1>
  Birth date:<input type="text" size="10" id="birthDate" onchange="validate();"/>
  Example:2001-11-12
  <div id="dateMessage"></div>
</body>
</html>


validationserver.php


<?php
if($_GET['birthDate']=="")
{
  $message="You have entered a invalid date";
  $passed=false;
}
else
{
  $birthDate=$_GET['birthDate'];
  $date=explode('-',$birthDate);
  
  if(checkdate($date[1],$date[2],$date[0]))
  {
    $message="You have entered a valid date";
    $passed=true;
  }
  else
  {
          $message="You have entered a invalid date";
    $passed=false;
  }
}

echo "<response>";
echo "<passed>".$passed."</passed>";
echo "<message>".$message."</message>";
echo "</response>";
?>
感觉的问题所在:

var mes=xmlHttp.responseXML.getElementsByTagName("message")[0].firstChild.data;
var val=xmlHttp.responseXML.getElementsByTagName("passed")[0].firstChild.data;
把mes和val变量赋成指定的值的时候可运行。
好像是获取不了PHP文件响应的数据,感觉是不是PHP文件生成的XML有问题呀?

[ 本帖最后由 yhbsww 于 2006-7-2 12:23 PM 编辑 ]
2006-7-2 12:17 PM#1
查看资料  发短消息  顶部
 
phphp
版主
Rank: 7Rank: 7Rank: 7
加班一族


UID 65188
精华 1
积分 183
帖子 3006
金钱 172 喜悦币
威望 10
人脉 1
阅读权限 100
注册 2005-7-20
来自 北京市海淀区
状态 离线
[广告]: 代充Paypal帐号美元
alert(xmlHttp.responseText)



书到用时方恨少, 事非经过不知难
2006-7-2 02:19 PM#2
查看资料  访问主页  Blog  发短消息  QQ  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.042319 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP