如何提交多個具有相同name屬性的表單

2022-09-01 14:30:21 字數 1459 閱讀 4544

有的時候我們會遇到這樣乙個需求,乙個使用者頁面中有多條履歷資訊,每條履歷資訊對應資料表中的一條記錄,使用者可以進行新增或修改,點選儲存時同時提交到了後台。有兩個難點:1、前端怎樣一次性提交多條履歷資訊?2、後台如何獲取 form 表單提交的多個 name 屬性值相同的 input 標籤中的值?

例如:

年齡:姓名:

年齡:class="submit">

在這個表單中共有兩個字段:姓名,年齡。這兩個欄位的input中的name屬性值都相同 。如果我們用預設的表單提交方式:分成兩個表單分別提交,那只能提交乙個表單的資訊;如果放在乙個表單中直接提交,那後台只能獲取表單中的最後一條資訊,因為name屬性值相同,後面的資訊會覆蓋前面的資訊。這個時候就必須使用另一種方法了。

1、純文字內容的表單提交

首先,我們要重新處理表單**,將name屬性中的屬性值後面加乙個,加上相當於把值放入乙個陣列中 ,這樣就不用擔心後面的值會覆蓋前面的值了。

年齡:姓名:

年齡:class="submit">

當然,你也可以手動修改name屬性中的值,新增乙個標誌,讓它們變的不同,但比較麻煩,而且後台獲取到之後處理起來比較麻煩。

現在頁面修改完成,後台直接使用var_dump($_post)列印一下前端傳來的結果。

結果如下:

可以看到,後台接收到的資料是乙個二維陣列,key為表單中的name屬性值。後台接收到之後再進行處理

for($i=0;$i

var_dump($arr);

結果如下:

2、包含檔案的表單提交

和純文字表單上傳一樣,我們可以通過陣列的方式提交表單資訊。然後列印$_files陣列

結果如下:

當然,除了這種方式還有另一種方式,那就是使用ajax提交。

**如下:

class="submit">

既然使用ajax方式提交表單非常麻煩,那我們為什麼還要使用呢,主要是為了實現非同步傳輸。很多時候使用者提交完表單後想要知道是否提交成功,而後台也需要返回乙個資訊給使用者,指導使用者的下一步操作。如果不使用非同步傳輸,那在使用者填寫完資訊並提交後,後台如果發現錯誤返回錯誤詳細給使用者時,表單頁面已經重新整理完畢了,之前填的資訊都要重新填寫一遍或是更多。非常的麻煩。

form表單提交時多個相同name屬性

form表單提交時多個相同name屬性form表單提交時多個相同name屬性 其他情況參考 springmvc引數為物件,陣列 如果頁面直接需要多套相同的name,比如一位老師,多位同學 後台 person類 data public class personteacher類 data public ...

從多個具有相同欄位的表裡檢索記錄

我有多個表,都具有name欄位和value欄位和id欄位,其他字段不同。我想從這所有表裡檢索出value為2 name為 nm 的記錄,並且在這個查詢裡包含乙個欄位叫 表名 說明當前記錄是具體從哪個表裡查出來的。要完成這個任務,兩個要點 1 用union all 2 直接把表名 硬拷貝 作為乙個字段...

多個相同引數表單提交

現在需要使用非同步提交表單資料 querystring方式 但資料個數比較多,乙個個拼接比較麻煩,這時可以使用jquery的方法 form serialize 對表單進行序列化。但是如果這時,資料中有幾個是相同的name屬性,這是在後台使用request 就只能接收第乙個的值。於是,問題就來了,下面...