Class Myself Extends Phper{ }

二十弱冠、三十而立;不要等到当而立感叹弱冠,当不惑感叹而立...
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Zend Framework中的Ajax的Url疑惑解除

Posted on 2010-05-21 11:52  Terry_glp  阅读(1493)  评论(3)    收藏  举报

Zend Framework中的Ajax的Url疑惑解除:
=======================================

Jquery AJax部分 webinar.phtml中
//登录提交
$("#loginSubmit").click(
function(){
var username = $("#textfield").val();
var password = $("#textfield2").val();
if(username=='' || password==''){
alert(
'用户名或者密码不能为空!');
return false;
}
var no = Math.random();
var url = $("#baseUrl").val()+'/webinar/index/login/no/'+no;
$.get(url,{username:username,password:password },
function(backdata){
if(backdata != 'error'){
$(
"#loginShow").fadeOut();
$(
"#showName ").text(backdata);
$(
"#loginSuccessShow").fadeIn();
}
else{
alert(
"您输入的用户名或密码错误!请重新输入!")
$(
"#textfield").val('');
$(
"#textfield2").val('');
}
});
}
);

 

 

这里的Url要按照Zend FrameWork的正确格式输入。我当时为了不让Ajax请求内容缓存,在请求的Url后面直接加上一个no的随机数。之前出错的Url我写成了var url = 'login?no'+no;这样写不行的,用firbug测试会发现如果登录框所在页面请求的url倘若为localhost/webinar/public/webinar/index/index; (Module=webinar,controller=index,action=index);在该页面上有一个登录框,让其提交的时候触发上面提交按钮绑定的事件时候,会发现ajax请求的url不是localhost/webinar/public/webinar/index/login?no=....而是变成了localhost/webinar/public/webinar/index/index/localhost/webinar/public/webinar/index/login?no=....这样当然会让zend Framework找不到对应的action;解决方法就是必须按照ZendFramework的正常传值格式,以'名/值'对的形式来传递变量。罗嗦到此!