Yii Framework 开发教程(7) 使用CHtml 创建Form

2023-11-02



在创建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的定义:

  1. <p>This is the game of Hangman.  
  2. You must guess a word, a letter at a time.  
  3. If you make too many mistakes, you lose the game!</p>  
  4.   
  5. <?php echo CHtml::beginForm(); ?>  
  6.   
  7. <?php echo CHtml::radioButtonList('level', null, $levels); ?>  
  8.   
  9. <br/>  
  10. <?php echo CHtml::submitButton('Play!'); ?>  
  11.   
  12. <?php if($error): ?>  
  13. <span style="color:red">You must choose a difficulty level!</span>  
  14. <?php endif; ?>  
  15.   
  16. <?php echo CHtml::endForm(); ?>  
<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(); ?>

20121215001

使用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类参考文档

从版本 1.1.1 开始,提供了一个新的小物件 CActiveForm 以简化表单创建。 这个小物件可同时提供客户端及服务器端无缝的、一致的验证。这些在Yii支持的UI组件时一并介绍。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Yii Framework 开发教程(7) 使用CHtml 创建Form 的相关文章

  • blob 在线解码_roon、NAS图文全攻略

    前几天 eric已经发表了欧博旗舰RDS1电池数字界面转盘 旗舰RDB1电池解码器开箱篇 开箱篇 试听欧博旗舰RDS1电池数字界面转盘 旗舰RDB1电池解码器 支持roon Tidal MQA 本地播放评论篇 开盖照 本地播放评论篇 试听欧

随机推荐

  • HCIP华为认证网络工程师多久能够考过呢

    hcip华为认证网络工程师多久能考过
  • HP服务器RAID配置 两种方法

    其实所有阵列的配置方法都大同小异 只要知道了阵列的原理 有操作过一种服务器 其它品牌的服务器操作方法类似 下面以DL380G7 DL580G7 和DL388G9创建RAID的方法 放在博客上 方便查询 DL380G7 DL580G7 方法一
  • Oracle 忘记用户名和密码的解决办法

    很久以前装了Oracle 今天终于下决心要学一学了 结果一上午的时间就贡献给如何连接数据库上了 忘记了安装时设置的用户名和密码怎么办 查了下网上的资料 终于解决了 方法一 首先进入sqlplus 进入的方式有两种 一种是通过cmd命令台输入
  • Windos平台,官方编译LibYuv详细教程-Ninja编译

    Windos平台 官方编译LibYuv详细教程 Ninja编译 前言 阅读可有效节约您的时间 编译教程 前言 阅读可有效节约您的时间 首先说一下结论 为什么要用ninja编译Libyuv 下面是官方的编译教程 https github co
  • 自动驾驶仿真软件SCANeRstudio(二)场景、仿真、分析

    scaner scenario driver 驾驶员模型 traffic driver virtual driver human driver walker driver 一 动态基础部分 创建场景 1 创建Riviera地形 模式 sim
  • ChatGPT 是什么?

    ChatGPT是一种基于GPT 3 5架构的大型语言模型 由OpenAI公司开发 该模型使用了先进的机器学习技术 可以自动学习并理解自然语言 从而使其能够回答各种问题 生成文本和对话 ChatGPT模型基于GPT 3模型 但是具有更多的参数
  • 把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩

    前言 做数据库sql练习 遇到的此问题 自己第一次写有些复杂 想在网上搜寻下比较简洁高效的写法 但是几乎都是复制粘贴 错误的也在复制粘贴 半天找不到比较高质量的 还是自己写一下吧 建表语句不在此处列出 有更高效简洁的写法 欢迎留言评论 实现
  • Spark SQL 编程初级实践

    1 Spark SQL 基本操作 将下列 JSON 格式数据复制到 Linux 系统中 并保存命名为 employee json id 1 name Ella age 36 id 2 name Bob age 29 id 3 name Ja
  • Navicat 链接虚拟机Mysql 报错:2003-Can't connect to Mysql server on 'xxx' (10060 "Unknown error")

    前言 在首次在本机用Navicat链接VMware win10虚拟机中的Mysql数据库报错 如下 解决方法 一 尝试ping虚拟机ip地址 如果出现链接超时或者是过期的情况 请参考另一篇博客 https blog csdn net ido
  • JavaScript基础语法概念之(数据类型、强制转换、运算符)

    数据类型 数据类型就是字面量的类型 JS的六种数据类型 String 字符串 Number 数值 Boolean 布尔值 Null 空值 Undefined 未定义 Object 对象 引用数据类型 基本数据类型都是单一的值 值与值之间没有
  • 天才少年稚晖君首秀,官宣智元人形机器人!小米最强铁蛋2比狗更狗

    作者 新智元 编辑 新智元 点击下方卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 新智元导读 昨晚同时发生两件大事 雷军携比狗更狗的铁蛋2惊艳登场 稚晖君发出创业首秀预告 人形机器人 远征 A1 3天后亮相 放弃百万年薪从华
  • HTML5 画扇形图

    求评论啊 也写了 一些东西 咋就没人评论一下的呢 HTML5 画扇形图 最近 有个需求 做了个平衡论应用 因为是需要打包成 android 和 ios的 用了phonegap 技术 就是直接开发html5 然后直接生成 ios和androi
  • 图片/视频去水印代码(毕业设计)

    图像去水印 去水印代码代码部分 代码学习交流 请私信 摘要 水印是一种常用的保护技术媒体的版权 同时 为了提高水印的丰满度 攻击技术 如去除标记 也得到了关注 以前的水印去除方法需要获得水印标记用户位置或训练多任务网络以无差别地恢复背景 然
  • 几个常用的操作系统进程调度算法

    一 先来先服务和短作业 进程 优先调度算法 1 先来先服务调度算法 先来先服务 FCFS 调度算法是一种最简单的调度算法 该算法既可用于作业调度 也可用于进程调度 当在作业调度中采用该算法时 每次调度都是从后备作业队列中选择一个或多个最先进
  • 4700万人挤爆BOSS直聘服务器?

    来源于 不会笑青年 前两天 看到朋友圈热传的一张图 在这张图上 我们看到一位自称是BOSS直聘员工表示 金九银十是招聘旺季 2023年9月15日10点15分26秒 在线统计超过4700万人在刷BOSS页面 目前服务器超荷载 正在维护 找工作
  • 堆栈管理器

    转 http blog csdn net vipzjyno1 article details 25423543 public class StackManager Stack 中对应的Activity列表 也可以写做 Stack
  • Shell编程样例一篇

    Shell编程例子 来源 ChinaUnix博客 日期 2007 04 10 00 07 共有0条评论 我要评论 Bash编程实例 一 通过学习如何使用 bash 脚本语言编程 将使 Linux 的日常交互更有趣和有生产力 同时还可以利用那
  • 硬件十万个为什么?

    硬件十万个为什么 微信号 Hardware 10W 功能介绍 热爱技术 乐于分享 1 电源类 1 1 电源基础 各种 地 各种 GND 板载电源设计规范 电源环路稳定性评价方法 深入芯片内部 理解去耦电容的作用 减小DC DC变换器中的接
  • 复杂网络转载重点

    复杂网络是一种理解现实世界复杂系统的抽象模型 它将复杂系统中的实体抽象成节点 将实体之间的关系抽象成连线 虽然数学中的图论也在研究网络 但是现实中的网络会有更多的随机特性 因此 复杂网络 一般更加关注网络的统计特征 定义 在 http wi
  • Yii Framework 开发教程(7) 使用CHtml 创建Form

    在创建Yii 应用的MVC做的View时 可以直接使用HTML语言直接构造页面视图 Yii 也提供了几个帮助 helper 类简化视图编写 例如 要创建一个文本输入域 我们可以调用 CHtml textField 要创建一个下拉列表 则调用