文章标签 ‘AJAX’

用jquery一直都是用的异步传输,习惯了,今天在做表单提交验证一个字段的惟一性的时候,同样是用了异步,问题就出现了。

var checkwap=function(){
var total;
$.ajax({
url:’bsmajax.php?type=checkwap’,
type:’GET’,
async:false,//原来是true,
cache:false,
data :{wapnum:$(’input[id=wapnum]‘).val()},
dataType :’json’,
success :function(json){
total=json.total;
}
});
return total;
};
alert(checkwap());//开始的时候怎么也得不到值,以为是jquery关于变量作用域的访问问题

多加了几个alert();后才觉悟,因为是异步的,alert(checkwap());先执行了,等ajax成功返回数据后total才有值。
因为在表单提交的验证是要实时的,所以就 async:false 了,变成同步的。
当我以为是变量作用域问题时,在GOOGLE里搜索时,也有人犯这样的迷糊,现在记下来。

2009年10月7日14:44 | 没有评论
分类: Javascript

本文原创,转载请注明出处,谢谢合作!
AJAX 关于这个技术的书和文章,我不知道看了多少,一直没有用过。
PigBlog主要功能里就只有发表评论了,想想就用AJAX的吧,开始操刀AJAX,下面是我用这个技术的时候的学习心得。
从整体上来说,就是在JS里程序然后,通过DOM操作获得数据,发送给后台的PHP文件,PHP文件处理,返回结果,JS再接收,再通过DOM操作显示数据。
思路就是这样,其中难点是JS文件的编写。这整个过程中,我用到的一些东西,XMLHttpRequest,XML,DOM.
第一步:建立XMLHttpRequest,怎么建立就不说了,网上多的方法,我只把我的代码发出来

JAVASCRIPT

//创建XMLHTTP

function CreateXMLHttp(){

var request=false;

try{

if(window.XMLHttpRequest){

request=new XMLHttpRequest();

/*

* 如果服务器的响应没有XML mime-type header,某些Mozilla浏览器可能无法正常工作。

* 为了解决这个问题,如果服务器响应的header不是text/xml,可以调用其它方法修改该header。

* From:http://leexuan.blogbus.com/logs/1935602.html

* */

if(request.overrideMimeType){

request.overrideMimeType(‘text/xml’);

}

}

else if(window.ActiveXObject){

var i=0;

var xmlarray=[

'Microsoft.XMLHTTP',

'MSXML.XMLHTTP',

'Msxml2.XMLHTTP.6.0',

'Msxml2.XMLHTTP.5.0',

'Msxml2.XMLHTTP.4.0',

'Msxml2.XMLHTTP.3.0',

'Msxml2.XMLHTTP'

];

var len=xmlarray.length;

for(i;i<len;++i){

try{

request=new ActiveXObject(xmlarray[i]);

// request.SetRequestHeader(’Content-Type’,’text/xml’);

request.SetRequestHeader(‘Content-Type’,‘UTF-8′);

break;

}

catch(e){

request=false;

}

}

}

else{

alert(‘你的浏览器不支持AJAX’);

}

}

catch(e){

request=false;

}

return request;

}

2009年6月15日16:30 | 没有评论
分类: PHP
标签: