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

首頁 > 編程 > JavaScript > 正文

Ajax+FormData+javascript實(shí)現(xiàn)無刷新表單信息提交

2019-11-20 08:41:00
字體:
供稿:網(wǎng)友

原理:

dom收集表單信息,利用FormData快速收集表單信息 ,實(shí)例化表單數(shù)據(jù)對象 同時(shí)收集fm的表單域信息。

var fd = new FormData(fm); //實(shí)例化對象

alert(fd);

fd對象內(nèi)部有收集的form表單域信息

ajax傳遞表單信息

1.靜態(tài)顯示頁面代碼

<!DOCTYPE html ><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><script type="text/javascript">window.onload = function(){var fm = document.getElementsByTagName('form')[0];fm.onsubmit = function(){//利用FormData實(shí)現(xiàn)form表單信息收集var fd = new FormData(fm);//fd 內(nèi)部會把普通表單域 和 上傳文件域 的信息都收集//ajax傳遞表單信息var xhr = new XMLHttpRequest();xhr.onreadystatechange = function(){if(xhr.readyState==4){alert(xhr.responseText);}}//設(shè)置監(jiān)聽事件ajax.upload.onprogressxhr.upload.onprogress = function(evt){//感知附件上傳情況,利用事件對象感知var loaded = evt.loaded;var total = evt.total;var per = Math.floor((loaded/total)*100)+"%";document.getElementById('son').innerHTML = per;document.getElementById('son').style.width = per;}xhr.open('post','./05.php');xhr.send(fd);return false;//組織瀏覽器提交}}</script><style type="text/css">#pat {width:430px;height:40px; border:5px solid blue;}#son {width:0;height:100%; background-color:lightblue;}</style></head><body><h2>ajax+FormData實(shí)現(xiàn) 無刷新文件上傳</h2><form method="post" action="" ><p>用戶名:<input type="text" name="username" /></p><p>密碼:<input type="password" name="password" /></p><p>郵箱:<input type="text" name="email" /></p><div id="pat"><div id="son"></div></div><p>頭像:<input type="file" name="user_pic" /></p><p><input type="submit" value="注冊" /></p></form></body></html>

2.php頁面代碼

服務(wù)器保存附件名字為本身名字

本地文件------>上傳(php程序處理)------>服務(wù)器

本地文件名字的 字符集 gb2312

php程序的 字符集 utf-8--->gb2312 (在程序里邊把utf-8編碼的附件名字 轉(zhuǎn)碼為 gb2312)服務(wù)器的 字符集 gb2312

<?php//$_FILES['user_pic']['error']//0->ok 1->大小超過php.ini限制 2->大小超過MAX_FILE_SIZE限制 //3->附件只上傳了一部分(不完整) 4->沒有上傳附件if($_FILES['user_pic']['error']>0){exit('上傳附件有問題,有可能沒有附件');}//服務(wù)器保存附件名字為本身名字//本地文件------>上傳(php程序處理)------>服務(wù)器//本地文件名字的 字符集 gb2312//php程序的 字符集 utf-8--->gb2312// (在程序里邊把utf-8編碼的附件名字 轉(zhuǎn)碼為 gb2312)//服務(wù)器的 字符集 gb2312$name = $_FILES['user_pic']['name'];$name = iconv('UTF-8','GB2312',$name); //$name的編碼由utf-8---變?yōu)?-->gb2312$path = "./upload/";//附件上傳邏輯//move_uploaded_file(臨時(shí)路徑名,真實(shí)路徑名);if(move_uploaded_file($_FILES['user_pic']['tmp_name'],$path.$name))echo "success";elseecho "fail";

下面看下jQuery 將form表單通過ajax實(shí)現(xiàn)無刷新提交的實(shí)例代碼。

代碼如下所示:

//將form轉(zhuǎn)換為AJAX提交  function ajaxSubmit(url,frm,fn){    var dataPara=getFormJson(frm);    $.ajax({      url:url,      type:"post",      data:dataPara,      async:false,      dataType:'txt',      success:fn    });  }  //將form中的值轉(zhuǎn)換為鍵值對  function getFormJson(frm){    var o={};    var a=$(frm).serializeArray();    $.each(a,function(){      if(o[this.name]!==undefined){        if(!o[this.name].push){          o[this.name]=[o[this.name]];        }        o[this.name].push(this.value || '');      }else{        o[this.name]=this.value || '';      }    });    return o;  }/*  //前臺調(diào)用方式  function autoSubmitFun(){     ajaxSubmit("autoSumitScoreAJAX.action",$('#formId'),function(){});  }*/

以上所述是小編給大家介紹的Ajax+FormData+javascript實(shí)現(xiàn)無刷新表單信息提交,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 门源| 龙江县| 永安市| 宽城| 揭阳市| 宝山区| 浙江省| 桐乡市| 南皮县| 和平区| 密云县| 锡林浩特市| 姚安县| 屯留县| 高清| 博野县| 玛纳斯县| 延庆县| 屯门区| 江安县| 江门市| 澜沧| 灯塔市| 昆明市| 苏尼特左旗| 屏山县| 龙陵县| 栾川县| 石河子市| 龙口市| 淮阳县| 祥云县| 横峰县| 淳化县| 谢通门县| 盐亭县| 凤台县| 泾源县| 岳西县| 海口市| 边坝县|