CakePHP提供了多種內(nèi)置的標(biāo)簽用來輕松和安全地處理HTML表單。像許多其他PHP框架一樣,使用CakePHP也可以生成HTML的主要元素。以下是用于生成HTML元素的各種功能。
下面的函數(shù)用于生成select選項(xiàng)。
語法 | _selectOptions( array $elements array(), array $parents array(), boolean $showParents null, array $attributes array() ) | ||
參數(shù)說明 | -要格式化的元素; -OPTGROUP的父元素;-是否顯示父元素;-HTML屬性 | ||
返回類型 | 數(shù)組 | ||
說明 | 返回一個(gè)格式化的OPTION/OPTGROUP元素的數(shù)組 |
下面的函數(shù)用于生成HTML select元素 。
語法 | select( string $fieldName , array $options array() , array $attributes array() ) | ||
參數(shù)說明 | -SELECT元素的名字屬性;-SELECT元素中所用的OPTION元素的數(shù)組,采用value=>text鍵值對形式;-SELECT元素的HTML屬性 | ||
返回類型 | 格式化的SELECT元素 | ||
說明 | 返回格式化的SELECT元素 |
下列功能用于生成 HTML頁面上按鈕 。
語法 | Button (string $title, array $options array() ) | ||
參數(shù)說明 | -按鈕標(biāo)題,非自動(dòng)HTML編碼;-選項(xiàng)和HTML屬性的數(shù)組 | ||
返回類型 | HTML button標(biāo)簽 | ||
說明 | 創(chuàng)建<button>標(biāo)簽,默認(rèn)type值為submit,您可以使用$options['type']改變其值 |
下列功能用于生成 HTML頁面上的復(fù)選框 。
語法 | Checkbox (string $fieldName, array $options array() ) | ||
參數(shù)說明 | -字段名,如:Modelname.fieldname;-HTML屬性數(shù)組,可選項(xiàng)為value,checked, hiddenField, disabled, default. | ||
返回類型 | HTML文本輸入框元素 | ||
說明 | 創(chuàng)建復(fù)選框輸入控件 |
以下功能用于創(chuàng)建 HTML頁面上的表單元素 。
語法 | create( mixed $model null , array $options array() ) | ||
參數(shù)說明 | -所定義的表單的模型名稱,插件模型須包含插件名字,如:ContactManager.Contact。若傳遞一個(gè)數(shù)組且$options參數(shù)為空,則數(shù)組會(huì)被用作表單選項(xiàng)。如果為false,則沒有模型會(huì)被使用。 -一個(gè)HTML屬性和選項(xiàng)的數(shù)組,可能值為type, action, url, default, onsubmit,inputDefaults, encoding | ||
返回類型 | 格式化的空白表單標(biāo)簽 | ||
說明 | 返回一個(gè)HTML form元素 |
語法 | file(string $fieldName, array $options array() ) | ||
參數(shù)說明 | -字段名,在表單中為“Modelname.fieldname“; -HTML屬性數(shù)組 | ||
返回類型 | 文件輸入(選擇)框 | ||
說明 | 用來創(chuàng)建文件選擇組件 |
以下功能用于創(chuàng)建HTML頁面上隱藏的元素 。
語法 | hidden( string $fieldName , array $options array() ) | ||
參數(shù)說明 | -字段名,在表單中為“Modelname.fieldname"; -HTML屬性數(shù)組 | ||
返回類型 | 隱藏的輸入域 | ||
說明 | 創(chuàng)建一個(gè)隱藏的輸入域 |
下列功能用于生成HTML頁面上輸入元素 。
語法 | Input (string $fieldName , array $options array() ) | ||
參數(shù)說明 | -此處應(yīng)是“Modelname.fieldname";-每種類型的input元素有不同的選項(xiàng) | ||
返回類型 | 輸入控件 | ||
說明 | 生成一個(gè)完整的表單輸入控件,包含label和包裹其的div |
下列功能用于生成HTML頁面上的單選按鈕 。
語法 | Radio (string $fieldName , array $options array() , array $attributes array() ) | ||
參數(shù)說明 | -字段名,如“Modelname.fieldname";-單選項(xiàng)數(shù)組;-HTML屬性數(shù)組及其上的特殊屬性; | ||
返回類型 | 單選框控件 | ||
說明 | 創(chuàng)建單選控件,會(huì)生成一個(gè)默認(rèn)展示區(qū)域,用$options參數(shù)可以控制此展示區(qū)域 |
下列功能用于生成HTML頁的提交按鈕。
語法 | Submit (string $caption null, array $options array() ) | ||
參數(shù)說明 | -按鈕上的label或者:如果參數(shù)包含”//"或包含擴(kuò)展名.JPG, .JPE, .JPEG, .GIF, .PNG,如果存在擴(kuò)展名則使用圖像文件作為label,且如果第一個(gè)字符為"/”則圖像文件路徑相對應(yīng)網(wǎng)站根目錄webroot,如果第一個(gè)字符不為“/”則圖像文件路徑相對于webroot/img -選項(xiàng)數(shù)組,可能的選項(xiàng)為div,before,after,type等 | ||
返回類型 | HTML提交按鈕 | ||
說明 | 創(chuàng)建一個(gè)提交按鈕,此方法會(huì)生成一個(gè)可用于提交/重置表單的<input />元素,可以用$options控制type。如果$caption參數(shù)帶圖像路徑,則會(huì)創(chuàng)建一個(gè)圖形提交按鈕 |
下列功能用于生成 HTML頁面上textarea元素 。
語法 | Textarea (string $fieldName , array $options array() ) | ||
參數(shù)說明 | -字段名,在表單中為“Modelname.fieldname”; -html屬性數(shù)組,特殊選項(xiàng)如escape; | ||
返回類型 | 文本輸入域 | ||
說明 | 創(chuàng)建文本輸入域控件 |
修改config/routes.php文件如下。
config/routes.php文件
<?php use CakeCorePlugin; use CakeRoutingRouteBuilder; use CakeRoutingRouter; Router::defaultRouteClass('DashedRoute'); Router::scope('/', function (RouteBuilder $routes) { $routes->connect('register',['controller'=>'Registrations','action'=>'index']); $routes->fallbacks('DashedRoute'); }); Plugin::routes();
在src/Controller/目錄下創(chuàng)建一個(gè)RegistrationController.php文件。復(fù)制以下代碼至其中。
src/Controller/RegistrationController.php
<?php namespace AppController; use AppControllerAppController; class RegistrationsController extends AppController{ public function index(){ $country = array('India','United State of America','United Kingdom'); $this->set('country',$country); $gender = array('Male','Female'); $this->set('gender',$gender); } } ?>
在src/Template目錄下創(chuàng)建一個(gè)Registrations目錄,并在該Registrations目錄下創(chuàng)建一個(gè)名為index.ctp的視圖文件。復(fù)制以下代碼至其中。
src/Template/Registrations/index.ctp
<?php echo $this->Form->create("Registrations",array('url'=>'/register')); echo $this->Form->input('username'); echo $this->Form->input('password'); echo $this->Form->input('password'); echo '<label for="country">Country</label>'; echo $this->Form->select('country',$country); echo '<label for="gender">Gender</label>'; echo $this->Form->radio('gender',$gender); echo '<label for="address">Address</label>'; echo $this->Form->textarea('address'); echo $this->Form->file('profilepic'); echo '<div>'.$this->Form->checkbox('terms'). '<label for="country">Terms &Conditions</label></div>'; echo $this->Form->button('Submit'); echo $this->Form->end(); ?>
通過訪問以下網(wǎng)址執(zhí)行上面的例子-
http://localhost:85/CakePHP/register
執(zhí)行以上程序,你會(huì)看到如下頁面。
更多建議: