鍍金池/ 教程/ PHP/ Yii Framework 開發(fā)教程(7) 使用 CHtml 創(chuàng)建 Form
Yii Framework 開發(fā)教程(16) UI 組件 StarRating 示例
Yii Framework 開發(fā)教程(2) Yii Web 應(yīng)用基礎(chǔ)
Yii Framework 開發(fā)教程(19) UI 組件 TreeView 示例
Yii Framework 開發(fā)教程(39) Zii 組件-Slider 示例
Yii Framework 開發(fā)教程(45) Zii 組件-Selectable 示例
Yii Framework 開發(fā)教程(44) Zii 組件-Resizable 示例
Yii Framework 開發(fā)教程(8) 使用 FormModel
Yii Framework 開發(fā)教程(42) Zii 組件-Draggable 示例
Yii Framework 開發(fā)教程(18) UI 組件 TextHighlighter 示例
Yii Framework 開發(fā)教程(32) Zii 組件-GridView 示例
Yii Framework 開發(fā)教程(30) Zii 組件-ListView 示例
Yii Framework 開發(fā)教程(9) UI 組件 Widget 概述
Yii Framework 開發(fā)教程(17) UI 組件 TabView 示例
Yii Framework 開發(fā)教程(24) 數(shù)據(jù)庫-DAO 示例
Yii Framework 開發(fā)教程(25) 數(shù)據(jù)庫-Query Builder 示例
Yii Framework 開發(fā)教程(21) UI 組件 自定義 Captcha 示例
Yii Framework 開發(fā)教程(38) Zii 組件-ProgressBar 示例
Yii Framework 開發(fā)教程(20) UI 組件 Captcha 示例
Yii Framework 開發(fā)教程(14) UI 組件 MaskedTextField 示例
Yii Framework 開發(fā)教程(22) UI 組件 Zii 組件簡(jiǎn)介
Yii Framework 開發(fā)教程(31) Zii 組件-DetailView 示例
Yii Framework 開發(fā)教程(33) Zii 組件-Accordion 示例
Yii Framework 開發(fā)教程(36) Zii 組件-DatePicker 示例
Yii Framework 開發(fā)教程(6) CComponent 組件
Yii Framework 開發(fā)教程(37) Zii 組件-Dialog 示例
Yii Framework 開發(fā)教程(26) 數(shù)據(jù)庫-Active Record 示例
Yii Framework 開發(fā)教程(29) Zii組件-Menu 示例
Yii Framework 開發(fā)教程(46) Zii 組件-Sortable 示例
Yii Framework 開發(fā)教程(10) UI 組件 自定義組件
Yii Framework 開發(fā)教程(11) UI 組件 ActiveForm 示例
Yii Framework 開發(fā)教程(43) Zii 組件-Droppable 示例
Yii Framework 開發(fā)教程(27) 數(shù)據(jù)庫-關(guān)聯(lián) Active Record 示例
Yii Framework 開發(fā)教程(47) 主題 Theme 示例
Yii Framework 開發(fā)教程(48) 多國(guó)語言示例
Yii Framework 開發(fā)教程(35) Zii 組件-Button 示例
Yii Framework 開發(fā)教程(3) 為應(yīng)用添加日志
Yii Framework 開發(fā)教程(23) 數(shù)據(jù)庫-概述
Yii Framework 開發(fā)教程(12) UI 組件 ClipWidget 示例
Yii Framework 開發(fā)教程(41) Zii 組件-Tabs 示例
Yii Framework 開發(fā)教程(34) Zii 組件-AutoComplete 示例
Yii Framework 開發(fā)教程(40) Zii 組件-SliderInput 示例
Yii Framework 開發(fā)教程(5) URL 管理
Yii Framework 開發(fā)教程(4) Hangman 猜單詞游戲?qū)嵗?/span>
Yii Framework 開發(fā)教程(15) UI 組件 MultiFileUpload 示例
Yii Framework 開發(fā)教程(7) 使用 CHtml 創(chuàng)建 Form
Yii Framework 開發(fā)教程(28) Data Provider 簡(jiǎn)介
Yii Framework 開發(fā)教程(1) 第一個(gè)應(yīng)用 Hello World
Yii Framework 開發(fā)教程(13) UI 組件 ContentDecorator 示例

Yii Framework 開發(fā)教程(7) 使用 CHtml 創(chuàng)建 Form

在創(chuàng)建 Yii 應(yīng)用的 MVC 做的 View 時(shí),可以直接使用 HTML 語言直接構(gòu)造頁面視圖,Yii 也提供了幾個(gè)幫助(helper)類簡(jiǎn)化視圖編寫。例如, 要?jiǎng)?chuàng)建一個(gè)文本輸入域,我們可以調(diào)用 CHtml::textField(); 要?jiǎng)?chuàng)建一個(gè)下拉列表,則調(diào)用 CHtml::dropDownList()。在前面的 Hangman 例子的幾個(gè) View 就是使用 CHtml 來創(chuàng)建 View 的。

信息: 你可能想知道使用幫助類的好處,如果它們所需的代碼量和直接寫純 HTML 的代碼量相當(dāng)?shù)脑挕?答案就幫助類可以提供比 HTML 代碼更多的功能。例如, 如下代碼將生成一個(gè)文本輸入域,它可以在用戶修改了其值時(shí)觸發(fā)表單提交動(dòng)作。

    CHtml::textField($name,$value,array('submit'=>''));

不然的話你就需要寫一大堆 JavaScript 。

回憶一下 Hangman 中頁面 play 的定義:

    <p>This is the game of Hangman.
    You must guess a word, a letter at a time.
    If you make too many mistakes, you lose the game!</p>

    <?php echo CHtml::beginForm(); ?>

    <?php echo CHtml::radioButtonList('level', null, $levels); ?>

    <br/>
    <?php echo CHtml::submitButton('Play!'); ?>

    <?php if($error): ?>
    <span style="color:red">You must choose a difficulty level!</span>
    <?php endif; ?>

    <?php echo CHtml::endForm(); ?>

http://wiki.jikexueyuan.com/project/yii-development-tutorial/images/7.1.jpg" alt="picture7.1" />

使用 CHtml 構(gòu)造頁面總是以 CHtml::beginForm()開始以 CHtml::endForm()結(jié)尾。實(shí)際上這兩,個(gè)方法生成 From 標(biāo)簽的開始和結(jié)束標(biāo)記。 對(duì)于 HTML 表單支持的 UI 組件,如 button, radioButton, checkbutton 等 UI 組件,CHtml 類都提供了對(duì)應(yīng)的方法,比如上面的 radioButtonList 和 submitButton。

除 radioButtonList 等之外,CHtml 還提供了一組 activeXXX ,比如 activeRadioButtonList ,這些方法需要和 CFormModel 配合使用,對(duì)于 Hangman 這樣的例子我們沒有另外使用 Model,因此就沒有使用 activeRadioButtonList 方法,將在后面介紹 MVC 中的 Model 時(shí)介紹。

對(duì)與 CHtml 所支持的全部 UI 組件可以參考 Yii類參考文檔。

從版本 1.1.1 開始,提供了一個(gè)新的小物件 CActiveForm 以簡(jiǎn)化表單創(chuàng)建。 這個(gè)小物件可同時(shí)提供客戶端及服務(wù)器端無縫的、一致的驗(yàn)證。這些在 Yii支持的 UI 組件時(shí)一并介紹。