CodeIgniter架構——表單輔助函數總結

來源:互聯網
上載者:User

標籤:style   blog   http   color   java   使用   os   io   

首先第一步就是載入輔助函數:

$this->load->helper(‘form‘);

函數解析:

 

1、form_open()

建立一個開始form標籤,相對於你的配置文檔中的基礎URL。允許你添加一些form屬性和一些隱藏表單,並且他會基於你的 config.php 檔案裡設定的編碼,自動產生 accept-charset這個屬性。

範例:

echo form_open(‘email/send‘);

上面的例子會建立一個form提交至你的基礎URL加上"email/send" URI片段,像這樣:

<form method="post" accept-charset="utf-8" action="http://example.com/index.php/email/send" />

添加一些屬性——可以在第二個參數裡傳遞一個關聯陣列來達到這一目的,像這樣:

$attributes = array(‘class‘ => ‘email‘, ‘id‘ => ‘myform‘);echo form_open(‘email/send‘, $attributes);

上面的例子會建立一個這樣的form標籤:

<form method="post" accept-charset="utf-8" action="http://example.com/index.php/email/send"  class="email"  id="myform" />

增加隱藏欄位——隱藏欄位可以使用數組加在第三個參數上,就像這樣:

$hidden = array(‘username‘ => ‘Joe‘, ‘member_id‘ => ‘234‘);echo form_open(‘email/send‘, ‘‘, $hidden);

上面的例子會建立一個這樣的form標籤和這些隱藏欄位:

<form method="post" accept-charset="utf-8" action="http://example.com/index.php/email/send"><input type="hidden" name="username" value="Joe" /><input type="hidden" name="member_id" value="234" />

 

2、form_open_multipart()

這個函數和上面的form_open()函數完全一樣,不同之處在於它多了一個multipart屬性。如果你要製作一個上傳檔案的表單,這個屬性是必須的。

 

3、form_input()

以使你建立一個標準輸入欄。你可以在第一和第二個參數裡輸入name和value來建立一個:

echo form_input(‘username‘, ‘johndoe‘);

或者你也可以用關聯陣列來添加你想加入的內容:

$data = array(              ‘name‘        => ‘username‘,              ‘id‘          => ‘username‘,              ‘value‘       => ‘johndoe‘,              ‘maxlength‘   => ‘100‘,              ‘size‘        => ‘50‘,              ‘style‘       => ‘width:50%‘,            );echo form_input($data);// 將產生:<input type="text" name="username" id="username" value="johndoe" maxlength="100" size="50" style="width:50%" />

如果你想加入一些額外的內容,例如Javascript,你可以在第三個參數裡輸入字串來建立它:

$js = ‘onClick="some_function()"‘;echo form_input(‘username‘, ‘johndoe‘, $js);

 

4、form_password()

此函數除了是設定type為“password”外和上面的 form_input() 函數完全一樣。

 

5、form_upload()

此函數與上面的 form_input() 函數幾乎完全相同,唯一的區別是此函數所設定的 type 為 "file",用來上傳檔案。

 

6、form_textarea()

此函數與上面的 form_input() 函數幾乎完全相同,唯一的區別是此函數所產生的是一個"textarea"。說明:上面的範例中所指定的 "maxlength" 和 "size" 屬性在這裡變成了 "rows" 和 "cols" 。

 

7、form_dropdown()

建立一個標準的下拉式清單欄位。第一個參數是欄位名,第二個參數是一個包含各個選項的關聯陣列,第三個參數是你想要設定為預設被選中的值。第三個參數也可以是一個包含多重專案的數組,CI 將為你建立多選下拉式清單。例如:

$options = array(                  ‘small‘  => ‘Small Shirt‘,                  ‘med‘    => ‘Medium Shirt‘,                  ‘large‘   => ‘Large Shirt‘,                  ‘xlarge‘ => ‘Extra Large Shirt‘,                );$shirts_on_sale = array(‘small‘, ‘large‘);echo form_dropdown(‘shirts‘, $options, ‘large‘);// 將會產生:<select name="shirts"><option value="small">Small Shirt</option><option value="med">Medium Shirt</option><option value="large" selected="selected">Large Shirt</option><option value="xlarge">Extra Large Shirt</option></select>echo form_dropdown(‘shirts‘, $options, $shirts_on_sale);// 將會產生:<select name="shirts" multiple="multiple"><option value="small" selected="selected">Small Shirt</option><option value="med">Medium Shirt</option><option value="large" selected="selected">Large Shirt</option><option value="xlarge">Extra Large Shirt</option></select>

如果你希望 <select> 開始標籤包含一些額外的屬性,例如 id 屬性以及JavaScript,你可以將一個字串作為第四個參數傳遞過去:

$js = ‘id="shirts" onChange="some_function();"‘;echo form_dropdown(‘shirts‘, $options, ‘large‘, $js);

如果$options參數是一個多維陣列,form_dropdown() 函數將使用數組的鍵作為 label值產生一個 <optgroup> 標籤。

 

8、form_multiselect()

該函數可以產生標準的複選列表。第一個參數給出表單項的名稱;第二個參數用一個關聯陣列給出該表單項的全部可選項列表;第三個參數規定哪幾項是預設已選取的。這些參數的用法跟上面的form_dropdown()完全一樣。當然,由於是複選的,在處理傳值的時候,我們要使用數組的文法。數組文法的例子:foo[]。

 

9、form_fieldset()

協助你產生fieldset/legend標籤。

echo form_fieldset(‘Address Information‘);echo "<p>fieldset content here</p>\n";echo form_fieldset_close(); // 產生<fieldset> <legend>Address Information</legend> <p>form content here</p> </fieldset>

與其它函數類似,在第二個參數你可以傳遞一個關聯陣列來添加你自己想要的自訂的屬性。

$attributes = array(‘id‘ => ‘address_info‘, ‘class‘ => ‘address_info‘);echo form_fieldset(‘Address Information‘, $attributes);echo "<p>fieldset content here</p>\n";echo form_fieldset_close(); // 產生<fieldset id="address_info" class="address_info"> <legend>Address Information</legend> <p>form content here</p> </fieldset>

 

10、form_fieldset_close()

產生一個結束的fieldset標籤。唯一的優勢是,使用該函數,你可以傳遞資料,這些資料會附加在這個標籤的後面。例如:

$string = "</div></div>";echo fieldset_close($string);// 會產生:</fieldset></div></div>

 

11、form_checkbox()

作用是產生一個複選框。簡單範例如下:

echo form_checkbox(‘newsletter‘, ‘accept‘, TRUE);// 將會產生:<input type="checkbox" name="newsletter" value="accept" checked="checked" />

第三個參數為 TRUE/FALSE 布爾值,決定複選框是否被預設選中。

與其它表單輔助函數相似的是,你可以把包含了屬性值的數組作為參數傳遞給本函數:

$data = array(    ‘name‘        => ‘newsletter‘,    ‘id‘          => ‘newsletter‘,    ‘value‘       => ‘accept‘,    ‘checked‘     => TRUE,    ‘style‘       => ‘margin:10px‘,    );echo form_checkbox($data);// 將會產生:<input type="checkbox" name="newsletter" id="newsletter" value="accept" checked="checked" style="margin:10px" />

與其它函數相似的,如果你希望此標籤包含額外的資料,例如JavaScript,你可以將一個字串作為第四個參數傳遞過去:

$js = ‘onClick="some_function()"‘;echo form_checkbox(‘newsletter‘, ‘accept‘, TRUE, $js)

 

12、form_radio()

此函數與上面的 form_checkbox() 函數幾乎完全相同,唯一的區別是此函數產生的是 "radio" 單選框。

 

13、form_submit()

協助你產生一個標準的submit按鈕。樣本如下:

echo form_submit(‘mysubmit‘, ‘Submit Post!‘);// 會產生:<input type="submit" name="mysubmit" value="Submit Post!" />

與其它函數類似,第一個參數你可以傳遞一個關聯陣列來設定你所需要的屬性。第三個參數允許你添加一些額外的內容到產生的HTML代碼裡。

 

14、form_label()

協助你產生一個label.樣本如下:

echo form_label(‘你的名字是?‘,‘username‘);// 會產生: <label for="username">你的名字是?</label>

與其它函數類似,你可以在第三個參數傳入一個關聯陣列來增加一些額外的屬性值。

$attributes = array(‘class‘ => ‘mycustomclass‘,‘style‘ => ‘color: #000;‘,);echo form_label(‘你的名字是?‘, ‘username‘, $attributes);// 會產生: <label for="username" class="mycustomclass" style="color: #000;">你的名字是?</label>

 

15、form_reset()

作用是產生一個標準的 reset 按鈕。此函數用法與 form_submit() 完全相同。

 

16、form_button()

作用是產生一個標準的按鈕。你至少要給出兩個參數,它們分別是按鈕的名稱和內容:

echo form_button(‘name‘,‘content‘);// 將會產生<button name="name" type="button">Content</button>

或者你也可以將一個包含有任何你想要的資料的關聯陣列作為參數傳遞過去:

$data = array(    ‘name‘ => ‘button‘,    ‘id‘ => ‘button‘,    ‘value‘ => ‘true‘,    ‘type‘ => ‘reset‘,    ‘content‘ => ‘Reset‘);echo form_button($data);// 將會產生:<button name="button" id="button" value="true" type="reset">Reset</button>

如果你希望表單包含一些額外的資料,例如JavaScript,你可以將一個字串作為第三個參數傳遞過去:

$js = ‘onClick="some_function()"‘;echo form_button(‘mybutton‘, ‘Click Me‘, $js);

 

17、form_close()

作用是產生一個關閉 </form> 標籤。使用此函數的唯一好處是,你可以將這個標籤之後要添加的資料也傳遞過去。例如:

$string = "</div></div>";echo form_close($string);// 將會產生:</form></div></div>

 

18、form_prep()

允許你放心地在表單元素中使用HTML字元(例如引號),不必擔心破壞表單。考慮一下下面這個範例:

$string = ‘Here is a string containing "quoted" text.‘;<input type="text" name="myform" value="<var<$string</var<" />

因為上面的字串中包含了引號,因而導致表單被破壞。form_prep()函數會轉換HTML,因此可以放心使用:

<input type="text" name="myform" value="<var<<?php echo form_prep($string); ?></var<" />
說明: 如果你使用的是表單輔助函數中的任何一個,資料都會自動的進行預先處理,所以沒有必要調用本函數。只有當你手動建立表單元素時,你才需要本函數。

 

19、set_value()

允許你設定 input 或者 textarea 欄位的值。你必須在第一個參數中指定欄位名稱。第二個參數是可選的,允許你給欄位設定一個預設值。例如:

<input type="text" name="quantity" value="<dfn><?php echo set_value(‘quantity‘, ‘0‘); ?></dfn>" size="50" />

當上面的表單元素第一次載入時將會顯示"0"。

 

20、set_select()

如果你使用 <select> 下拉式功能表,此函數允許你顯示選中的功能表項目。第一個參數必須包含下拉式功能表的名稱,第二個參數必須包含每個功能表項目的值。,第三個參數是可選的,作用是設定功能表項目為預設選中狀態(使用TRUE/FALSE布爾值)。

範例:

<select name="myselect"><option value="one" <?php echo set_select(‘myselect‘, ‘one‘, TRUE); ?> >One</option><option value="two" <?php echo set_select(‘myselect‘, ‘two‘); ?> >Two</option><option value="three" <?php echo set_select(‘myselect‘, ‘three‘); ?> >Three</option></select>

 

21、set_checkbox()

允許你顯示一個處於提交狀態的複選框。第一個參數必須包含此複選框的名稱,第二個參數必須包含它的值,第三個參數是可選的,作用是設定複選框為預設選中狀態(使用TRUE/FALSE布爾值)。

例如:

<input type="checkbox" name="mycheck" value="1" <?php echo set_checkbox(‘mycheck‘, ‘1‘); ?> /><input type="checkbox" name="mycheck" value="2" <?php echo set_checkbox(‘mycheck‘, ‘2‘); ?> />

 

22、set_radio()

允許你顯示那些處於提交狀態的單選框。這個函數與前面的 set_checkbox() 是相同的。

<input type="radio" name="myradio" value="1" <?php echo set_radio(‘myradio‘, ‘1‘, TRUE); ?> /><input type="radio" name="myradio" value="2" <?php echo set_radio(‘myradio‘, ‘2‘); ?> />

 

範例:

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.