在創建Yii 應用的MVC做的View時,可以直接使用HTML語言直接建構頁面視圖,Yii 也提供了幾個幫助(helper)類別簡化視圖 編寫。例如, 要建立一個文字輸入域,我們可以呼叫 CHtml::textField();要建立一個下拉列表,則呼叫 CHtml::dropDownList()。在前面的Hangman例子的幾個View是使用CHtml來建立View的。
資訊: 你可能想知道使用幫助 類別的好處,如果它們所需的程式碼量和直接寫純HTML的程式碼量相當的話。 答案就幫助類別可以提供比 HTML 程式碼更多的功能。例如 , 如下程式碼將產生一個文字輸入域,它可以在使用者修改了其值時觸發表單提交動作。
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(); ?>
使用CHtml構造頁總是以CHtml::beginForm()開始以 CHtml::endForm()結尾。實際上這兩,個方法產生From標籤的開始和 結束標記。
對於HTML表單支援的UI元件,如button, radioButton, checkbutton 等UI元件,CHtml類別都提供了對應的方法, 例如上面的radioButtonList 和 submitButton。
除radioButtonList等之外,CHtml還提供了一組activeXXX ,比如activeRadioButtonList ,這些方法需要和CFormModel 配合使用,對於Hangman這樣的例子我們沒有另外使用Model,因此就沒有使用activeRadioButtonList方法,將在後面介紹MVC中的Model時介紹。
對與CHtml所支援的全部UI元件可以參考Yii類參考文件:http://www.yiiframework.com/doc/api/1.1/CHtml
從版本1.1.1 開始,提供了一個新的小物件CActiveForm. (http://www.yiiframework.com/doc/api/1.1/CActiveForm)以簡化表單建立。 這個小物件可同時提供客戶端及伺服器端無縫的、一致的驗證。這些在Yii支援的UI元件時一併介紹。
以上就是PHP開發框架Yii Framework教程(7) 使用CHtml創建Form的內容,更多相關內容請關注PHP中文網(www.php.cn)!