PHP Web表單生成器

2021-09-14 05:21:39 字數 3473 閱讀 4308

在專案的實際開發中,經常需要設計各種各樣表單。直接編寫html表單雖然簡單,但修改、維護相對麻煩。

因此,可以利用php實現乙個web表單生成器,使其可以根據具體的需求定製不同功能的表單。具體實現需求如下:

資料的儲存形式決定了程式實現的方式。

因此,根據上述開發要求,可以將每個表單項作為乙個陣列元素,每個元素利用乙個關聯陣列描述,分別為:標記tag、提示文字text、屬性陣列attr、選項陣列option和預設值default。

1.準備表單

表單的主要功能:就是在網頁上用於輸入資訊的區域,收集使用者輸入的資訊,並將其提交給後端的伺服器進行處理,實現使用者與伺服器的互動。

例如:購物結算、資訊搜尋等都是通過表單實現的。

2.準備表單——建立表單

乙個完整的表單是由表單域和表單控制項組成的。其中,表單域由form標記定義,用於實現使用者資訊的收集和傳遞。

//input控制項男女

游泳讀書

跑步

//textarea控制項
屬性cols和rows用於定義文字域的高度和寬度

//select控制項

--請選擇--

北京深圳

上海

4.準備表單—label標記

在編寫表單控制項時,為了提供更好的使用者體驗,經常將input控制項與label標記聯合使用,以擴大控制項的選擇範圍。

例如,選擇性別時,單擊提示文字「男」或「女」,也可選中相應的單選按鈕。

使用label標記包裹單選按鈕和提示文字,即可實現單擊label標記裡的內容時,相應的表單控制項就會被選中。

5.多維陣列

根據案例的需求分析可知,表單項的相關資料統一儲存到乙個多維陣列中。其中,利用數字鍵名區分不同的表單項,每個表單項又是乙個二維的關聯陣列。

// 利用多維陣列儲存表單元素

[ 0 => , // 表單項---單選按鈕

1 => , // 表單項

2 => , // 表單項---文字框

3 => , // 表單項

……];

// 每個表單項的陣列結構

0 => [

'tag' => '', // 標記----input、textarea、select

'text' => '', // 提示文字----label標籤內顯示的內容

'attr' => , // 屬性陣列----表單元素的屬性,如type

'option' => , // 選項陣列----單選框或核取方塊中的每個選項

'default' => '' // 預設值----預設值

],

//準備表單陣列

// $elements陣列儲存整個表單

$elements = [

0 => , // 第1個表單項陣列

1 => , // 第2個表單項陣列

];

//文字框

0 => [

'tag' => 'input',

'text' => '姓  名:',

'attr' => ['type' => 'text', 'name' => 'user']

],

//單選框

3 => [

'tag' => 'input',

'text' => '性  別:',

'attr' => ['type' => 'radio', 'name' => 'gender'],

'option' => ['m' => '男', 'w' => '女'],

'default' => 'm'

],

option利用關聯陣列儲存具體的單選項,鍵名m、w為單選框的value屬性值,對應的值「男」、「女」為該單選項的提示資訊

default的值為option關聯陣列中的乙個鍵名,表示預設選中哪一項

//核取方塊

4 => [

'tag' => 'input',

'text' => '愛  好:',

'attr' => ['type' => 'checkbox', 'name' => 'hobby'],

'option' => ['swimming' => '游泳', 'reading' => '讀書', 'running' => '跑步'],

'default' => ['swimming', 'reading']

],

//下拉列表

5 => [

'tag' => 'select',

'text' => '住  址:',

'attr' => ['name' => 'area'],

'option' => ['' => '--請選擇--', 'bj'=>'北京', 'sh'=>'上海', 'sz'=>'深圳']

],

//文字域

6 => [

'tag' => 'textarea',

'text' => '自我介紹:',

'attr' => ['name' => 'introduce', 'cols' => 50, 'rows' => 5]

],

//提交按鈕

7 => [

'tag' => 'input',

'attr' => ['type' => 'submit', 'value' => '提交']

]

1.表單的自動生成——讀取$elements陣列

實現思路

2.表單的自動生成——拼接表單元素的屬性

實現思路

3.表單的自動生成——拼接input元素

實現思路

4.表單的自動生成——拼接select元素

實現思路

5.表單的自動生成——拼接textarea元素

實現思路

Wed表單生成器

利用php實現乙個w使用多維陣列儲存表單的相關資訊 支援的表單項包括文字框 文字域 單選框 核取方塊和下拉列表5種型別 儲存每個表單項的標記 提示文字 屬性 選項值 預設值等 將功能封裝成函式,根據傳遞的引數生成指定的表單 eb表單生成器,使其可以根據具體的需求定製不同功能的表單。具體實現需求如下 ...

Web表單生成器

input控制 input type text name user value test 文字框 input type password name pedr value 密碼框 input type file name upload 檔案上傳域 input type hidden name idr ...

python 生成器作用 Python生成器

生成器介紹 在函式內部包含yield關鍵字,那麼該函式執行的結果是生成器,生成器就是迭代器。生成器的功能 把函式結果做成迭代器 以一種優雅的方式封裝好iter,next 提供了一種自己定義迭代器的方式。使用生成器建立乙個迭代器 def a print a yield 11 使用yield,執行後返回...