From表單提交詳解

一、From表單提交地址

From表單提交是Web中重要的傳遞用戶輸入信息的機制,提交的目標可以是同一頁面,也可以是另一個頁面。如果目標是同一頁面,可以不指定提交地址。如果目標是其他頁面,則需要指定提交地址。指定提交地址可以使用action屬性。

<form action="submit.php">
    ...
</form>

實際應用中,提交地址往往需要與後端接口對接,需要知道接口地址,例如:

<form action="http://www.xxx.com/submit" method="post">
    ...
</form>

二、From表單提交文件後端null

對於一些小型Web應用,可以在前端直接處理from表單的提交,不需要後端接收處理。這時可以把action設置為”#”或者不設置。對於未設置的情況,瀏覽器默認提交到當前頁面,在本頁面中處理。

<form action="#">
    ...
</form>

三、From表單提交及返回

from表單提交後,等待服務端的處理,等待過程中可以顯示提示信息或者提示用戶信息正在處理。

<form id="myForm">
    ...
</form>
<script>
    document.getElementById("myForm").onsubmit = function() {
        alert("正在提交,請稍等...");
        return true;
    };
</script>

提交完成後,需要得到服務端返回的處理結果。可以通過form元素的onsubmit事件來做到.

<form id="myForm">
    ...
</form>
<div id="result"></div>
<script>
    document.getElementById("myForm").onsubmit = function() {
        var xhr = new XMLHttpRequest();
        xhr.open(this.method, this.action);
        xhr.onreadystatechange = function() {
            if(xhr.readyState === 4 && xhr.status === 200) {
                document.getElementById("result").innerHTML = xhr.responseText;
            }
        };
        xhr.send(new FormData(this));
        return false;
    };
</script>

四、From表單提交的方式

from表單提交可以使用兩種方法:GET方法和POST方法。GET方式將表單內容附加到URL後面,POST方式將內容放在請求體中。GET方式有長度限制,但是可以緩存重複請求,POST方式沒有長度限制,但不可以緩存重複請求。應用時需要根據需求進行選擇。

<form action="#" method="get">
    ...
</form>
<form action="#" method="post">
    ...
</form>

五、From表單提交取消

在from表單提交過程中,有可能用戶會意識到輸入的內容有誤,需要取消這次提交,這時可以使用reset方法。

<form id="myForm">
    ...
</form>
<button type="button" onclick="document.getElementById('myForm').reset()">取消</button>
<button type="submit">提交</button>

六、From表單提交後端如何接收數據

from表單提交後,通過POST方式將表單內容放在了請求體中,服務端需要解析請求體,獲取表單內容。在PHP中,可以通過$_POST數組獲取。

//form.html
<form action="submit.php" method="post">
    <input type="text" name="username">
    <input type="password" name="password">
</form>

//submit.php
$username = $_POST['username'];
$password = $_POST['password'];
echo "用戶名: ".$username."
密碼:".$password;

七、From表單提交沒有數據

對於from表單內容為空的情況下,提交的請求體也是空的。服務端在解析請求體的時候,需要做相應的處理防止出現Notice提示。

$username = isset($_POST['username']) ? $_POST['username'] : "";
$password = isset($_POST['password']) ? $_POST['password'] : "";

八、From表單提交的兩種方式

from表單提交可以使用JavaScript來實現,不需要刷新頁面,提高了用戶的體驗。以下是兩種方式的代碼示例。

//方式一
<form id="myForm">
    ...
</form>
<button type="button" onclick="submitForm()">提交</button>
<script>
    function submitForm() {
        var xhr = new XMLHttpRequest();
        xhr.open(document.getElementById("myForm").method, document.getElementById("myForm").action);
        xhr.onreadystatechange = function() {
            if(xhr.readyState === 4 && xhr.status === 200) {
                document.getElementById("result").innerHTML = xhr.responseText;
            }
        };
        xhr.send(new FormData(document.getElementById("myForm")));
    }
</script>

//方式二
<form id="myForm" onsubmit="submitForm(event)">
    ...
</form>
<button type="submit">提交</button>
<script>
    function submitForm(event) {
        event.preventDefault();
        var xhr = new XMLHttpRequest();
        xhr.open(document.getElementById("myForm").method, document.getElementById("myForm").action);
        xhr.onreadystatechange = function() {
            if(xhr.readyState === 4 && xhr.status === 200) {
                document.getElementById("result").innerHTML = xhr.responseText;
            }
        };
        xhr.send(new FormData(document.getElementById("myForm")));
    }
</script>

九、From表單提交後無反應

在from表單提交後,如果出現無反應的情況,可能是因為from表單提交的內容不符合要求。可以使用瀏覽器提供的開發者工具進行調試,查看服務端是否有返回錯誤信息。

總結

from表單提交是Web開發中常用的重要機制,掌握常用的from表單提交方法,對Web開發工作非常重要。在提交過程中,需要注意服務端和客戶端的數據處理,以及用戶體驗。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/197034.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-03 13:27
下一篇 2024-12-03 13:27

相關推薦

  • Java表單提交方式

    Java表單提交有兩種方式,分別是get和post。下面我們將從以下幾個方面詳細闡述這兩種方式。 一、get方式 1、什麼是get方式 在get方式下,表單的數據會以查詢字符串的形…

    編程 2025-04-27
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁盤中。在執行sync之前,所有的文件系統更新將不會立即寫入磁盤,而是先緩存在內存…

    編程 2025-04-25
  • 神經網絡代碼詳解

    神經網絡作為一種人工智能技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網絡的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網絡模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • MPU6050工作原理詳解

    一、什麼是MPU6050 MPU6050是一種六軸慣性傳感器,能夠同時測量加速度和角速度。它由三個傳感器組成:一個三軸加速度計和一個三軸陀螺儀。這個組合提供了非常精細的姿態解算,其…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • Java BigDecimal 精度詳解

    一、基礎概念 Java BigDecimal 是一個用於高精度計算的類。普通的 double 或 float 類型只能精確表示有限的數字,而對於需要高精度計算的場景,BigDeci…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分布式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    編程 2025-04-25
  • Python安裝OS庫詳解

    一、OS簡介 OS庫是Python標準庫的一部分,它提供了跨平台的操作系統功能,使得Python可以進行文件操作、進程管理、環境變量讀取等系統級操作。 OS庫中包含了大量的文件和目…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25

發表回復

登錄後才能評論