ajax.js中这俩个函数怎么使用?

zhiye2005 2009-04-03 09:41:39

if (!window.XMLHttpRequest) {
window.XMLHttpRequest=function (){
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
//@desc load a page(some html) via xmlhttp,and display on a container
//@param url the url of the page will load,such as "index.php"
//@param request request string to be sent,such as "action=1&name=surfchen"
//@param method POST or GET
//@param container the container object,the loaded page will display in container.innerHTML
//@usage
// ajaxLoadPage('index.php','action=1&name=surfchen','POST',document.getElementById('my_home'))
// suppose there is a html element of "my_home" id,such as "<span id='my_home'></span>"
//@author SurfChen <surfchen@gmail.com>
//@url http://www.surfchen.org/
//@license http://www.gnu.org/licenses/lgpl.html LGPL
//代码原文 http://www.surfchen.org/?p=127
function ajaxLoadPage(url,request,method,container)
{
method=method.toUpperCase();
var loading_msg='Loading...';//the text shows on the container on loading.
var loader=new XMLHttpRequest;//require Cross-Browser XMLHttpRequest
if (method=='GET')
{
urls=url.split("?");
if (urls[1]=='' || typeof urls[1]=='undefined')
{
url=urls[0]+"?"+request;
}
else
{
url=urls[0]+"?"+urls[1]+"&"+request;
}

request=null;//for GET method,loader should send NULL
}
loader.open(method,url,true);
if (method=="POST")
{
loader.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
}
loader.onreadystatechange=function(){
if (loader.readyState==1)
{
container.innerHTML=loading_msg;

}
if (loader.readyState==4)
{
container.innerHTML=loader.responseText;
}
}
loader.send(request);
}
//@desc transform the elements of a form object and their values into request string( such as "action=1&name=surfchen")
//@param form_obj the form object
//@usage formToRequestString(document.form1)
//@notice this function can not be used to upload a file.if there is a file input element,the func will take it as a text input.
// as I know,because of the security,in most of the browsers,we can not upload a file via xmlhttp.
// a solution is iframe.
//@author SurfChen <surfchen@gmail.com>
//@url http://www.surfchen.org/
//@license http://www.gnu.org/licenses/lgpl.html LGPL
function formToRequestString(form_obj)
{
var query_string='';
var and='';
for (var i=0;i<form_obj.length ;i++ )
{
e=form_obj[i];


if (e.name) {
if (e.type=='select-one') {
element_value=e.options[e.selectedIndex].value;
} else if (e.type=='select-multiple') {
for (var n=0;n<e.length;n++) {
var op=e.options[n];
if (op.selected) {
query_string+=and+e.name+'='+encodeURIComponent(op.value);
and="&"
}
}
continue;
} else if (e.type=='checkbox' || e.type=='radio') {
if (e.checked==false) {
continue;
}
element_value=e.value;
} else if (typeof e.value != 'undefined') {
element_value=e.value;
} else {
continue;
}
query_string+=and+e.name+'='+encodeURIComponent(element_value);
and="&"
}

}
return query_string;
}
//@desc no refresh submit(ajax) by using ajaxLoadPage and formToRequestString
//@param form_obj the form object
//@param container the container object,the loaded page will display in container.innerHTML
//@usage ajaxFormSubmit(document.form1,document.getElementById('my_home'))
//@author SurfChen <surfchen@gmail.com>
//@url http://www.surfchen.org/
//@license http://www.gnu.org/licenses/lgpl.html LGPL
function ajaxFormSubmit(form_obj,container)
{
ajaxLoadPage(form_obj.getAttributeNode("action").value,formToRequestString(form_obj),form_obj.method,container)
}


原文链接在这里 http://www.surfchen.org/?p=127
第一个函数ajaxLoadPage以前我看过,会使用,请问
第二个函数formToRequestString 和ajaxFormSubmit怎么使用?
能举个列子给我看下吗,谢谢
...全文
76 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
BS_somebody 2009-04-08
  • 打赏
  • 举报
回复
无满意答案,结贴!
quweiie 2009-04-03
  • 打赏
  • 举报
回复
ajaxLoadPage里的post/get的方法,用通过formToRequestString的方法获取用户数据
quweiie 2009-04-03
  • 打赏
  • 举报
回复
formToRequestString应该在ajaxLoadPage里使用

52,782

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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