为什么ajax的返回值无法赋值?

mingfish2 2010-10-29 11:28:07
为什么ajax的返回值无法赋值?



index.htm代码:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
function test(){
$.ajax({
url:"laji.php",
success:function(d){
return d;
}
});
}
function hello(){
var x=test();
alert(x);
}
</script>
<button onclick="hello();">hello</button>
...全文
126 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
床上等您 2010-10-29
  • 打赏
  • 举报
回复
从不用tp自带的ajax。

都是用jquery的。
mingfish2 2010-10-29
  • 打赏
  • 举报
回复
加个async:false,也不行,郁闷。
睡不醒的zhu 2010-10-29
  • 打赏
  • 举报
回复
楼上正解
CunningBoy 2010-10-29
  • 打赏
  • 举报
回复
因为Ajax是异步处理的,所以test执行后不会立刻返回结果,你要取结果要在success函数中做,修改如下:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
function test(){
$.ajax({
url:"laji.php",
success:function(d){
alert(d);
return d;
//或者这里调用你后面的处理。
}
});
}
function hello(){
var x=test();
}
</script>
<button onclick="hello();">hello</button>
amani11 2010-10-29
  • 打赏
  • 举报
回复
这个最好去JS版


原因是AJAX是异步交互,不会等到return返回的。你对结果的处理放在jquery的success里即可
通用数据访问层及Ajax服务端框架源码 这个演示网站的特点: 1. 数据访问全使用了我的通用数据访问层 + 存储过程的实现。 2. 页面使用了大量的Ajax技术,没有任何的直接提交或回传(Submit Form or postback),分页,查询,对话框,都以Ajax的方式实现。 3. 所有Ajax技术的客户端全部基于JQuery,服务端则使用我的Ajax服务端框架 4. 客户端UI使用JQuery Easy-UI 5. 虽然没有使用Asp.net MVC框架,但却使用了MVC思想。 通用数据访问层 及 Ajax服务端框架 的技术特性: 数据访问层设计目标 调用存储过程,不管输入参数多么复杂,不管有多少输出参数,包含转换一个结果集到实体列表,只需要一行C#代码。 Ajax框架的特色 服务端中的C#方法或用户控件对于JS来说是透明的,就好像可以直接访问一下。 Ajax框架的作用意义 接受JS的请求,去调用C#方法或者用户控件。 至于如何调用方法,如何给方法的参数赋值,最后如何处理返回值给客户端,就属于框架本身的事情了。 所有的这一切,对于客户端来说,更是透明的。这些透明的实现也就是框架的意义了。 这个演示网站的业务原型来自于Northwind,但所有的表都是我重新根据示例需要而重新定义的, 数据来源于以前从网页上获取的数据,虽然不真实,但更适合于演示。于Northwind不同的是,为了示例, 所有的数据库操作全使用存储过程来完成。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧