ajax返回值的问题 本帖最后由 xiongmzh 于 2010-02-27 14:00:40 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个这样是不行的ajax是异步的,请求发出后,自身就继续向下执行,你要得到请求返回的结果,只能放到回叫函数,即byB里 我试过把text 定义成外部的全局变量,然后alert(text); 弹出的是未知数据我就是想得到byB中的text变量 得到之后呢?你不是能在byB里取到吗? 你要alert,在byB里alert一下就是了.再不....你搞个循环等待一下, 然后alert( document.getElementById('ajaxcheck').innerHTML )..... 这个没保险,不知道ajax多久才能返回来,还有可能失败呢 因为我需要text这个值,在check函数里做一个判断,如你所说,我做一个循环试试 if(xhr.readyState == 4 && xhr.status == 200){ check(xhr.responseText);} 不是,我正是需要在check函数里处理事件,应该是要回调byB函数,回调这个词语很熟悉,倒是没用过,试试看helloyou0说的循环的方法试过了,不可取,我继续找其他方法 xhr.onreadystatechange = function(){ if(xhr.readyState == 4 && xhr.status == 200) { byB(); }} function byB(text){ document.getElementById('ajaxcheck').innerHTML = text; return text;}xmlHttp.onreadystatechange = function() { if(xhr.readyState == 4 && xhr.status == 200) { byB(xmlHttp.responseText); } } 没注意你不能return text;你取得text要做什么一起做了,何必return. 是这样的,我就说我最终意图吧我用Ajax异步验证验证码是否正确,正确就提交数据,错误的话,就提交不了数据。本来是在php里面验证的,但是万一验证错误,又得返回,用户又要重新填一次数据,麻烦,其实也可以用php判断,如果验证码错误,就用session记录提交的post数据,返回后,表单里还能保存着先前提交的数据,这个基本实现了,唯有一处地方搞了很久没实现,于是想到用Ajax来做 呵呵,你的验证码一定要用php再验证一遍,或使用ajax验证。javascript验证是可以绕过的。"就用session记录提交的post数据"没必要,验证这起可以使用javascript控制数据的提交,比如验证码正确,使用.click()去点击隐藏的表单提交按钮,不过一定要记住服务器端接收数据时一定要再验证是否通过“验证”原因就是前面说的。 哈哈终于搞定了猜怎么着我给表单加了一个隐藏域,然后把text赋值给隐藏域,但是,第一次请求总是不会实时赋值给这个隐藏域,那么,我就把check函数里面的Ajaxcheck(imagecode),再写一个Ajaxcheck(imagecode)就可以了两次请求,第二次请求就如意的赋值给了隐藏域了。谢谢大家,感谢 请教各位大大数组排序算法,我已经糊涂了!!!!! 字符转截取问题! php截字符的问题,在线等 php获取URL参数的问题!! 山东phper召集。。 一个mysql问题 菜鸟提问::::我想象csdn这样点web开发的php,然后右边的就出现所有的问题 如何把一个字符串中的字母 都去掉,包括大小写的阿 -_-_-_-_-_-_-PHPHelp开始提供测试下载_-_-_-_-_-_-_-_-_ 求助:数据库查询到的表格是横向排列的 求php代码运行后,输出结果是什么? php怎样替换css文件中相应的内容?
ajax是异步的,请求发出后,自身就继续向下执行,你要得到请求返回的结果,只能放到回叫函数,即byB里
..... 这个没保险,不知道ajax多久才能返回来,还有可能失败呢
{
check(xhr.responseText);
}
不是,我正是需要在check函数里处理事件,应该是要回调byB函数,
回调这个词语很熟悉,倒是没用过,试试看helloyou0说的循环的方法试过了,不可取,我继续找其他方法
{
if(xhr.readyState == 4 && xhr.status == 200)
{
byB();
}
}
{
document.getElementById('ajaxcheck').innerHTML = text;
return text;
}
xmlHttp.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{
byB(xmlHttp.responseText);
}
}
你不能return text;你取得text要做什么一起做了,何必return.
本来是在php里面验证的,但是万一验证错误,又得返回,用户又要重新填一次数据,麻烦,
其实也可以用php判断,如果验证码错误,就用session记录提交的post数据,返回后,表单里还能保存着先前提交的数据,这个基本实现了,唯有一处地方搞了很久没实现,于是想到用Ajax来做
终于搞定了
猜怎么着
我给表单加了一个隐藏域,然后把text赋值给隐藏域,但是,第一次请求总是不会实时赋值给这个隐藏域,那么,我就把check函数里面的Ajaxcheck(imagecode),再写一个Ajaxcheck(imagecode)就可以了
两次请求,第二次请求就如意的赋值给了隐藏域了。谢谢大家,感谢