首頁 > 後端開發 > php教程 > 數組方式進行表單提交

數組方式進行表單提交

WBOY
發布: 2016-08-08 09:31:16
原創
1104 人瀏覽過

  今天遇到一個問題,要保存很多表單信息,苦惱了許久,終於發現一個挺不錯的方法,以數組的形式把表單中的數據提交至後台進行保存。

  其實實作起來很簡單,就是給表單中要提交的資訊的name命名時要有一定的規範,我們先比較下下面這兩種方式的差別:

第一種、普通的方式,每個要提交的值都有一個名稱

<form action="./index.php" method="get">
	<div>
		<input type="text" name="name1" />
		<input type="text" name="num1" />
		<input type="text" name="img1" />
	</div>
	<br>
	<div>
		<input type="text" name="name2" />
		<input type="text" name="num2" />
		<input type="text" name="img2" />
	</div>
	<br>
	<div>
		<input type="text" name="name3" />
		<input type="text" name="num3" />
		<input type="text" name="img3" />
	</div>
	......
  <input type="submit" value="Submit" />
</form>
登入後複製

  服務(index.php)很簡單就兩句話

<?php
echo "<pre class="brush:php;toolbar:false">";
print_r($_GET);
登入後複製

  在渲染好的網頁上填入下面資訊並點擊提交

  透過瀏覽器看到的 Query String Paramaters是這樣的

  在服務段會收到這樣的訊息

  對與後端來說這樣可能不是太好處理,要是能把同一組的三個資訊放在一個數組中,是不是就好處理多了,下面再看看另外一種方式

第二種、陣列的方式進行表單提交

<form action="./index.php" method="get">
	<div>
		<input type="text" name="infos[1][name]" />
		<input type="text" name="infos[1][num]" />
		<input type="text" name="infos[1][img]" />
	</div>
	<br>
	<div>
		<input type="text" name="infos[2][name]" />
		<input type="text" name="infos[2][num]" />
		<input type="text" name="infos[2][img]" />
	</div>
	<br>
	<div>
		<input type="text" name="infos[3][name]" />
		<input type="text" name="infos[3][num]" />
		<input type="text" name="infos[3][img]" />
	</div>
	......
  <input type="submit" value="Submit" />
</form>
登入後複製

  細心看看就會發現,要提交的資料的名字name發生了變化,在這裡看可能還不太明顯,當點擊提交後會發現傳到後端的值整齊多了,看看下面的截圖

  透過瀏覽器插件解析過的查詢字串是這樣的

  服務端列印出來的資料是這樣的:

  當後台收到這樣的資料的時候是不是就好處理多了,省了好多事,當然,這個地方還有要注意的地方,在給要提交的值命名的時候數組中不用加引號,加引號之後後端的鍵值中會存在引號,這點要注意。還有一點要注意的是,現在更流行的做法是ajax提交,用ajax提交的時候怎麼取得表單中的值呢?這個其實也很簡單透過jquery提供的serialize()方法可以很方便的將所有要提交的內容拼接成url字串,然後透過get的方式就可以提交給後台了。

  當然了,實際中還可能遇到這樣的問題,要提交的組數(像上面的1、2、3)是不確定的,可以在前端隨意的添加,這個時候怎麼去用數組提交這些內容呢?這個還是可以透過合適的明明很便捷的解決掉的,

<form action="./index.php" method="get">
	<div>
		<input type="text" name="infos[name][]" />
		<input type="text" name="infos[num][]" />
		<input type="text" name="infos[img][]" />
	</div>
	<br>
	<div>
		<input type="text" name="infos[name][]" />
		<input type="text" name="infos[num][]" />
		<input type="text" name="infos[img][]" />
	</div>
	<br>
	<div>
		<input type="text" name="infos[name][]" />
		<input type="text" name="infos[num][]" />
		<input type="text" name="infos[img][]" />
	</div>
	......
  <input type="submit" value="Submit" />
</form>
登入後複製

 先看看瀏覽器傳遞的資料

   

 這時候後端收到的資料是這樣的

  

  得到這樣的數據,也很容易將每一組的資訊進行歸類了。是不是很方便呢,在沒有使用這個方法之前,我每次遇到這樣的問題都很頭疼,現在可以輕鬆的解決掉了。

  本文版權歸作者iforever(luluyrt@163.com)所有,未經作者本人同意禁止任何形式的轉載,轉載文章之後必須在文章頁面明顯位置給出作者和原文連接,否則保留追究法律責任的權利。

以上就介紹了數組方式進行表單提交,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板