国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > AJAX > 正文

發(fā)布三個ajax相關(guān)的函數(shù),包括無刷新提交表單等

2024-09-01 08:32:01
字體:
供稿:網(wǎng)友

幾個月前,因為項目需求,我寫了下面的三個ajax相關(guān)的函數(shù)。發(fā)布出來和大家分享。
第一個是用來無刷新加載一段HTML
第二個是把表單數(shù)據(jù)轉(zhuǎn)換成一串請求字符串
第三個是結(jié)合函數(shù)一和函數(shù)二的無刷新提交表單實現(xiàn)。

還有一點要提到的是,無刷新表單提交,還不能對文件上傳進(jìn)行處理,這個主要是因為瀏覽器的安全設(shè)置。目前無刷新的上傳,一般是用iframe來實現(xiàn)的。關(guān)于這個,我們在google里搜索能找到很多。

網(wǎng)上雖然已經(jīng)有很多優(yōu)秀的ajax的類和函數(shù)了,但是或許我這幾個函數(shù)對大家還有點用處,于是我就發(fā)布出來了。
可以在這里下載。

復(fù)制代碼 代碼如下:


//@desc load a page(some html) via xmlhttp,and display on a container
//@param urlthe url of the page will load,such as "index.php"
//@param requestrequest string to be sent,such as "action=1&name=surfchen"
//@param methodPOST or GET
//@param containerthe 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></span>"
//@author SurfChen <surfchen@gmail.com>
//@url
//@license GPL
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_objthe 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
//@license GPL
function formToRequestString(form_obj)
{
var query_string='';
var and='';
//alert(form_obj.length);
for (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=='checkbox' || e.type=='radio')
{
if (e.checked==false)
{
break;
}
element_value=e.value;
}
else
{
element_value=e.value;
}
query_string+=and+e.name+'='+element_value.replace(//&/g,"%26");
and="&"
}

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 株洲市| 澳门| 乡宁县| 广平县| 巩留县| 中方县| 唐河县| 房产| 浦东新区| 凤翔县| 莫力| 门源| 木里| 青海省| 正镶白旗| 淳安县| 明光市| 三门县| 阳高县| 当雄县| 峡江县| 柳林县| 万载县| 韶关市| 白沙| 丰城市| 佛山市| 元谋县| 新巴尔虎左旗| 永昌县| 常州市| 建阳市| 普安县| 垣曲县| 陈巴尔虎旗| 武强县| 两当县| 云安县| 临泉县| 瑞丽市| 彭水|