HTML無刷新提交表單

来源:http://www.cnblogs.com/shouce/archive/2016/04/05/5353694.html
-Advertisement-
Play Games

通常對於無刷新提交表單,我們都是運用ajax實現的。前段時間跟著老大瞭解到另一種無刷新提交表單的方法,是利用iframe框架實現的。現在整理出來分享給大家。 第一種: (html頁面) <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset= ...


通常對於無刷新提交表單,我們都是運用ajax實現的。前段時間跟著老大瞭解到另一種無刷新提交表單的方法,是利用iframe框架實現的。現在整理出來分享給大家。

第一種:

(html頁面)

複製代碼
<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="utf-8">
    <title>無刷新提交表單</title>
    <style type="text/css">
        ul{ list-style-type:none;}
    </style>
</head>
<body>
    <iframe name="formsubmit" style="display:none;">
    </iframe>
    
<!-- 將form表單提交的視窗指向隱藏的ifrmae,並通過ifrmae提交數據。 --> <form action="form.php" method="POST" name="formphp" target="formsubmit"> <ul> <li> <label for="uname">用戶名:</label> <input type="text" name="uname" id="uname" /> </li> <li> <label for="pwd">密 碼:</label> <input type="password" name="pwd" id="pwd" /> </li> <li> <input type="submit" value="登錄" /> </li> </ul> </form> </body> </html>
複製代碼

(PHP頁面:form.php)

複製代碼
<?php
  //非空驗證
  if(empty($_POST['uname']) || empty($_POST['pwd']))
  {
    echo '<script type="text/javascript">alert("用戶名或密碼為空!");</script>';
    exit;
  }
  
  //驗證密碼
  if($_POST['uname'] != 'jack' || $_POST['pwd'] != '123456')
  {
    echo '<script type="text/javascript">alert("用戶名或密碼不正確!");</script>';
    exit;
  } else {
    echo '<script type="text/javascript">alert("登錄成功!");</script>';
    exit;
  }
  
  
複製代碼

 

第二種:

(html頁面)

複製代碼
<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="utf-8">
    <title>iframe提交表單</title>
</head>
<body>
    <iframe name="myiframe" style="display:none;" onload="iframeLoad(this);"></iframe>
    <form action="form.php" target="myiframe" method="POST">
      用戶名:<input type="text" name="username" /><br/>
      密 碼:<input type="password" name="userpwd" /><br/>
      
      <input type="submit" value="登錄" />
    </form>
    
    <script type="text/javascript">
     function iframeLoad(iframe){
        var doc = iframe.contentWindow.document;
        var html = doc.body.innerHTML;
        if(html != ''){
          //將獲取到的json數據轉為json對象
          var obj = eval("("+html+")");
          //判斷返回的狀態
          if(obj.status < 1){
            alert(obj.msg);
          }else{
            alert(obj.msg);
            window.location.href="http://www.baidu.com";
          }
        }
     }
    </script>
</body>
</html>
複製代碼

(PHP頁面:form.php)

複製代碼
<?php
  //設置時區
  date_default_timezone_set('PRC');
  /*
    返回的提交消息
    status:狀態
    msg:提示信息
  */
  $msg = array('status'=>0,'msg'=>'');
  
  //獲取提交過來的數據
  $name = $_POST['username'];
  $pwd = $_POST['userpwd'];
  
  //模擬登錄驗證
  $user = array();
  $user['name'] = 'jack';
  $user['pwd'] = 'jack2014';
  
  if($name != $user['name']){
    $msg['msg'] = '該用戶未註冊!';
    $str = json_encode($msg);
    echo $str;
    exit;
  }else if($pwd != $user['pwd']){
    $msg['msg'] = '輸入的密碼錯誤!';
    $str = json_encode($msg);
    echo $str;
    exit;
  }
  
  $msg['msg'] = '登錄成功!';
  $msg['status'] = 1;
  $str = json_encode($msg);
  echo $str;
複製代碼

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 開篇導讀 “養成良好的編程習慣”其實是相當綜合的一個命題,可以從多個角度、維度和層次進行論述和評判。如代碼的風格、效率和可讀性;模塊設計的靈活性、可擴展性和耦合度等等。要試圖把所有方面都闡述清楚必須花很多的精力,而且也不一定能闡述得全面。因此,本系列文章以軟體開發的基礎問題為切入點,闡述程式設計和代 ...
  • 初始化一個map 1 2 3 4 5 Map<String, String> map = new HashMap<String, String>(); map.put("1", "hell"); map.put("2", "hello"); map.put("3", "hel"); map.put( ...
  • 幹掉這道題的那一刻,我只想說:我終於**的AC了!!! 最終記憶體1344K,耗時10282ms,比起歸併樹、劃分樹以及其他各種黑科技,這個成績並不算光彩⊙﹏⊙ 但至少,從最初的無數次TLE到最終的AC,這過程見證了一個二分演算法的艱辛優化 先貼代碼: 1 const int bktSize=1024; ...
  • 現在編程的主流語言基本上都是面向對象的。如C#,C++,JAVA。我們在使用時,已經構造了一個個的類。但是往往由於我們在類內部或外部的設計上存在種種問題,導致儘管是面向對象的語言,卻是面向過程的邏輯,甚至維護起來異常困難。每次增加或修改功能都要改動很多的代碼,如履薄冰。而面向對象的六大原則主要的目的 ...
  • 一、設計目的 從事.Net平臺開發系統已有8年多了,一直思考搭建.Net分散式系統架構。基於window平臺搭建的大型分散式系統不多,之前瞭解過myspace、stackoverflow等大型網站。搭建一個大型平臺需要綜合考慮很多方面,不單純是軟體架構,還包括網路和硬體設備等。由於現代大部分應用建設 ...
  • 本文介紹一個jquery的小技巧,能讓任意組件對象都能支持類似DOM的事件管理,也就是說除了派發事件,添加或刪除事件監聽器,還能支持事件冒泡,阻止事件預設行為等等。在jquery的幫助下,使用這個方法來管理普通對象的事件就跟管理DOM對象的事件一模一樣,雖然在最後當你看到這個小技巧的具體內容時,你可... ...
  • <select>: 1 2 3 4 5 6 7 8 9 10 奪得2008年歐洲杯冠軍的國家是: <select name="nation" id="nation"> <option value="">請選擇</option> <option value="Germany">德國</option> ...
  • 從事前端開發工作也有一定的時間了,在這段時間里,由一個基本的前端開發開始,做到前端經理;基本上算是走過了所有前端開發都走過的路,今天主要分享下我這一路走來,對前端的理解。 我開始接觸前端的時候,其實稱不上是所謂的開發,更多的是現在多數人對前端的理解-美工,當時負責的工作就是將PSD轉化為HTML頁面 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...