濮阳杆衣贸易有限公司

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

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

熱門標(biāo)簽:澳大利亞城市地圖標(biāo)注 電銷機(jī)器人違法了嗎 海南銀行智能外呼系統(tǒng)商家 辰溪地圖標(biāo)注 姜堰電銷機(jī)器人 遼寧銀行智能外呼系統(tǒng) 許昌智能電銷機(jī)器人公司 遼寧正規(guī)電銷機(jī)器人 上海浦東騰訊地圖標(biāo)注位置

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

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

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

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

//@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=1name=surfchen"
//@param   method       POST or GET
//@param   container          the container object,the loaded page will display in container.innerHTML
//@usage 
//         ajaxLoadPage('index.php','action=1name=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/gpl.html 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=1name=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/gpl.html GPL
function formToRequestString(form_obj)
{
    var query_string='';
    var and='';
    //alert(form_obj.length);
    for (i=0;iform_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_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/gpl.html GPL
function ajaxFormSubmit(form_obj,container)
{
    ajaxLoadPage(form_obj.getAttributeNode("action").value,formToRequestString(form_obj),form_obj.method,container)
}

您可能感興趣的文章:
  • IIS里的AJAX相關(guān)的設(shè)置
  • jquery $.ajax相關(guān)用法分享
  • ajax上傳時參數(shù)提交不更新等相關(guān)問題
  • ajax的 IE cache 相關(guān)問題解決
  • js jquery ajax的幾種用法總結(jié)(及優(yōu)缺點(diǎn)介紹)
  • 淺談Ajax相關(guān)及其優(yōu)缺點(diǎn)

標(biāo)簽:崇左 深圳 西藏 伊春 威海 晉城 銅川 撫州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《發(fā)布三個ajax相關(guān)的函數(shù),包括無刷新提交表單等》,本文關(guān)鍵詞  發(fā)布,三個,ajax,相關(guān),的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《發(fā)布三個ajax相關(guān)的函數(shù),包括無刷新提交表單等》相關(guān)的同類信息!
  • 本頁收集關(guān)于發(fā)布三個ajax相關(guān)的函數(shù),包括無刷新提交表單等的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    海城市| 溆浦县| 巩留县| 桂东县| 澎湖县| 廊坊市| 翼城县| 易门县| 丰宁| 手机| 广东省| 厦门市| 舞钢市| 浮梁县| 娄烦县| 双牌县| 白河县| 都昌县| 海南省| 达拉特旗| 惠安县| 邵阳市| 安仁县| 贵阳市| 常熟市| 公主岭市| 海阳市| 乐清市| 宁德市| 南漳县| 松滋市| 沙洋县| 沭阳县| 手游| 绵竹市| 江西省| 西平县| 余姚市| 定西市| 桦甸市| 德格县|