欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2016年10月24日 09:17:52   作者:劉俊濤的博客  
在前端開發(fā)中ajax,formdata和js實(shí)現(xiàn)無(wú)刷新表單信息提交非常棒,接下來(lái)通過(guò)本文給大家介紹Ajax+FormData+javascript實(shí)現(xiàn)無(wú)刷新表單信息提交的相關(guān)資料,需要的朋友可以參考下

原理:

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

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

alert(fd);

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

ajax傳遞表單信息

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

<!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)部會(huì)把普通表單域 和 上傳文件域 的信息都收集
//ajax傳遞表單信息
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if(xhr.readyState==4){
alert(xhr.responseText);
}
}
//設(shè)置監(jiān)聽(tīng)事件ajax.upload.onprogress
xhr.upload.onprogress = function(evt){
//感知附件上傳情況,利用事件對(duì)象感知
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) 無(wú)刷新文件上傳</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="注冊(cè)" /></p>
</form>
</body>
</html>

2.php頁(yè)面代碼

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

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

本地文件名字的 字符集 gb2312

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

<?php
//$_FILES['user_pic']['error']
//0->ok 1->大小超過(guò)php.ini限制 2->大小超過(guò)MAX_FILE_SIZE限制 
//3->附件只上傳了一部分(不完整) 4->沒(méi)有上傳附件
if($_FILES['user_pic']['error']>0){
exit('上傳附件有問(wèn)題,有可能沒(méi)有附件');
}
//服務(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";
else
echo "fail";

下面看下jQuery 將form表單通過(guò)ajax實(shí)現(xiàn)無(wú)刷新提交的實(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)換為鍵值對(duì)
  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;
  }
/*
  //前臺(tái)調(diào)用方式
  function autoSubmitFun(){
     ajaxSubmit("autoSumitScoreAJAX.action",$('#formId'),function(){});
  }
*/

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

相關(guān)文章

  • javascript之學(xué)會(huì)吝嗇 精簡(jiǎn)代碼

    javascript之學(xué)會(huì)吝嗇 精簡(jiǎn)代碼

    前端開發(fā),要學(xué)會(huì)吝嗇:
    2010-04-04
  • JavaScript組合模式---引入案例分析

    JavaScript組合模式---引入案例分析

    這篇文章主要介紹了JavaScript組合模式,結(jié)合具體案例形式分析了JavaScript組合模式定義、應(yīng)用與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • JavaScript保留兩位小數(shù)的2個(gè)自定義函數(shù)

    JavaScript保留兩位小數(shù)的2個(gè)自定義函數(shù)

    這篇文章主要介紹了JavaScript保留兩位小數(shù)的2個(gè)自定義函數(shù),需要的朋友可以參考下
    2014-05-05
  • 更靠譜的H5橫豎屏檢測(cè)方法(js代碼)

    更靠譜的H5橫豎屏檢測(cè)方法(js代碼)

    這篇文章主要為大家詳細(xì)介紹了更靠譜的橫豎屏檢測(cè)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Bootstrap框架的學(xué)習(xí)教程詳解(二)

    Bootstrap框架的學(xué)習(xí)教程詳解(二)

    Bootstrap,來(lái)自 Twitter,是目前最受歡迎的前端框架。本文給大家介紹Bootstrap框架的學(xué)習(xí)教程詳解,對(duì)bootstrap框架感興趣的朋友跟著小編一起學(xué)習(xí)吧
    2016-10-10
  • JavaScript之Blob對(duì)象類型的具體使用方法

    JavaScript之Blob對(duì)象類型的具體使用方法

    這篇文章主要介紹了JavaScript之Blob對(duì)象類型的具體使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • FF和IE之間7個(gè)JavaScript的差異

    FF和IE之間7個(gè)JavaScript的差異

    盡管 JavaScript 歷史上使用冗長(zhǎng)而令人生厭的代碼塊來(lái)標(biāo)的特定瀏覽器的時(shí)期已經(jīng)結(jié)束了,但是偶爾使用一些簡(jiǎn)單的代碼塊和對(duì)象檢測(cè)來(lái)確保一些代碼在用戶機(jī)器上正常工作依然是必要的。
    2009-05-05
  • 提高網(wǎng)站信任度的技巧

    提高網(wǎng)站信任度的技巧

    網(wǎng)站信任度:一方面指瀏覽者對(duì)于站點(diǎn)的信任程度,另一方面指搜索引擎對(duì)于網(wǎng)站的信任值(TrustRank),網(wǎng)站信任度對(duì)于企業(yè)站點(diǎn)更為重要.在得到更高信任度的同時(shí),流量更容易轉(zhuǎn)化為實(shí)在的收入.
    2008-10-10
  • layer彈窗在鍵盤按回車將反復(fù)刷新的實(shí)現(xiàn)方法

    layer彈窗在鍵盤按回車將反復(fù)刷新的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇layer彈窗在鍵盤按回車將反復(fù)刷新的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-09-09
  • js中符號(hào)轉(zhuǎn)意問(wèn)題示例探討

    js中符號(hào)轉(zhuǎn)意問(wèn)題示例探討

    符號(hào)轉(zhuǎn)意,大家或許有所了解,知識(shí)在使用中或許不是那么的在意,其實(shí)這個(gè)問(wèn)題很重要,下面為大家講解下js符號(hào)轉(zhuǎn)意問(wèn)題相關(guān)知識(shí),感興趣的朋友可以參考下
    2013-08-08

最新評(píng)論