日期:2014-05-17  浏览次数:20450 次

zend framework 如何使用ajax,高分求答案。
本人最近用zend framework,但不知如何使用ajax。
具体需求如下:
<form id="form1" name="form1" method="post" action="/login/reg">
 <tr>
  <td>用户名:</td>
  <td><input name="username" type="text" id="username" /></td>
  <td><div id="usernameDiv">请输入用户名</div></td>
  </tr>
</form>
js代码如下:
<script type="text/javascript" >
var xmlhttp = false;
if(window.ActiveXObject){
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpReuqest){
xmlhttp = new XMLHttpRequest();
}

function $(id){
return document.getElementById(id);
}
$('userName').onblur = function(){
userName = $('userName').value;
if(flag1 == 'yes'){
xmlhttp.open('get','/global/checkusername?username='+username,true);
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4){
if(xmlhttp.status == 200){
var msg = xmlhttp.responseText;
if(msg == '1'){
$('usernameDiv').innerHTML="<font color=green>恭喜您,该用户名可以使用!</font>";
flag="yes";
}else if(msg == '2'){
$('usernameDiv').innerHTML="<font color=red>用户名被占用!</font>";
flag="no";
}
}
}
}
xmlhttp.send(null);
}
}
</script>

要求如下:通过ajax把表单中的用户名提交到服务器,然后验证是否存在该用户名,不存在返回1,存在返回2,问题在于globalController控制器下的checkusernameAction 方法如何写,还有怎样区别是不是一个ajax请求呢??求高手们解答,thanks......

------解决方案--------------------
你可以这样写 在view中
  
 $.post("checkusername",{"username":$("#username").val()},function(e){})


你然后 在 控制下 用 $_post['username'] 取得传过来的值 跟数据库里的对比下! 然后不存在的话 echo
1 存在的话 echo 2