目录搜索
欢迎目录快速参考图基本信息服务器要求许可协议变更记录关于CodeIgniter安装下载 CodeIgniter安装指导从老版本升级疑难解答介绍开始CodeIgniter 是什么?CodeIgniter 速记表支持特性应用程序流程图模型-视图-控制器架构目标教程内容提要加载静态内容创建新闻条目读取新闻条目结束语常规主题CodeIgniter URL控制器保留字视图模型辅助函数使用 CodeIgniter 类库创建你自己的类库使用 CodeIgniter 适配器创建适配器创建核心系统类钩子 - 扩展框架的核心自动装载资源公共函数URI 路由错误处理缓存调试应用程序以CLI方式运行管理应用程序处理多环境PHP替代语法安全开发规范类库参考基准测试类日历类购物车类配置类Email 类加密类文件上传类表单验证详解FTP 类图像处理类输入类Javascript 类语言类装载类迁移类输出类分页类模板解析器类安全类Session 类HTML 表格类引用通告类排版类单元测试类URI 类User-Agent 类表单验证XML-RPC 和 XML-RPC 服务器Zip 编码类缓存适配器适配器参考适配器数据库类Active Record 类数据库缓存类自定义函数调用数据库配置连接你的数据库数据库快速入门例子代码字段数据数据库维护类查询辅助函数数据库类查询生成查询记录集表数据事务数据库工具类JavaScript类辅助函数参考数组辅助函数CAPTCHA 辅助函数Cookie Helper日期辅助函数目录辅助函数下载辅助函数Email 辅助函数文件辅助函数表单辅助函数HTML辅助函数Inflector 辅助函数语言辅助函数数字辅助函数路径辅助函数安全辅助函数表情辅助函数字符串辅助函数文本辅助函数排版辅助函数URL 辅助函数XML 辅助函数
文字

CodeIgniter 用户指南 版本 2.1.0

编辑文档、查看近期更改请 登录 或 注册  找回密码
查看原文

表单辅助函数

表单辅助函数文件包含那些帮助你使用表单的函数。

载入辅助函数

用下面的代码载入该辅助函数:

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

下列函数才可用:

form_open()

创建一个开始form标签,相对于你的配置文档中的基础URL。允许你添加一些form属性和一些隐藏表单,并且他会基于你的 config.php 文件里设置的编码,自动生成 accept-charset 这个属性。

使用这个函数而不是直接硬编码HTML的主要的优势是使你的程序可以方便的转换,如果你的URL变化的话。

下面是一个例子:

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" />

form_open_multipart()

这个函数和上面的form_open()函数完全一样,不同之处在于它多了一个multipart属性。如果你要制作一个上传文件的表单,这个属性是必须的。

form_hidden()

可以使你创建一个隐藏输入栏。你可以输入name和value来创建一个:

form_hidden('username', 'johndoe');
echo form_hidden('username', 'johndoe');【此行非原文内容,我认为上面那行应该写上 echo ,如此行效果,IT不倒翁注】

// 将产生:

<input type="hidden" name="username" value="johndoe" />

或者你也可以使用数组来联合创建它们:

$data = array(
              'name'  => 'John Doe',
              'email' => 'john@example.com',
              'url'   => 'http://example.com'
            );

echo form_hidden($data);

// 将产生:

<input type="hidden" name="name" value="John Doe" />
<input type="hidden" name="email" value="john@example.com" />
<input type="hidden" name="url" value="http://example.com" />

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);

form_password()

此函数除了是设置type为“password”外和上面的 form_input() 函数完全一样。

form_upload()

此函数与上面的 form_input() 函数几乎完全相同,唯一的区别是此函数所设置的 type 为 "file",用来上传文件。

form_textarea()

此函数与上面的 form_input() 函数几乎完全相同,唯一的区别是此函数所生成的是一个"textarea"。说明:上面的范例中所指定的 "maxlength" 和 "size" 属性在这里变成了 "rows" 和 "cols"。

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> 标签。

form_multiselect()

该函数可以生成标准的复选列表。第一个参数给出表单项的名称;第二个参数用一个关联数组给出该表单项的全部可选项列表;第三个参数规定哪几项是默认已选取的。这些参数的用法跟上面的form_dropdown()完全一样。当然,由于是复选的,在处理传值的时候,我们要使用数组的语法。数组语法的例子:foo[]

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>

form_fieldset_close()

生成一个结束的fieldset标签。唯一的优势是,使用该函数,你可以传递数据,这些数据会附加在这个标签的后面。例如:

$string = "</div></div>";

echo form_fieldset_close($string);

// 会生成:
</fieldset>
</div></div>

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)

form_radio()

此函数与上面的 form_checkbox() 函数几乎完全相同,唯一的区别是此函数生成的是 "radio" 单选框。

form_submit()

帮助你生成一个标准的submit按钮。示例如下:

echo form_submit('mysubmit', 'Submit Post!');

// 会生成:

<input type="submit" name="mysubmit" value="Submit Post!" />

与其它函数类似,第一个参数你可以传递一个关联数组来设置你所需要的属性。第三个参数允许你添加一些额外的内容到生成的HTML代码里。

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>

form_reset()

作用是生成一个标准的 reset 按钮。此函数用法与 form_submit() 完全相同。

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);

form_close()

作用是生成一个关闭 </form> 标签。使用此函数的唯一好处是,你可以将这个标签之后要添加的数据也传递过去。例如:

$string = "</div></div>";

echo form_close($string);

// 将会生成:

</form>
</div></div>

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<" />

说明: 如果你使用的是表单辅助函数中的任何一个,数据都会自动的进行预处理,所以没有必要调用本函数。只有当你手动创建表单元素时,你才需要本函数。

set_value()

允许你设置 input 或者 textarea 字段的值。你必须在第一个参数中指定字段名称。第二个参数是可选的,允许你给字段设置一个默认值。例如:

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

当上面的表单元素第一次加载时将会显示"0"。

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>

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'); ?> />

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'); ?> />

 

翻译贡献者: billycui, Fanbin, Hex, IT不倒翁, pw_2012, soaringup, soyota, thankwsx, yinzhili
最后修改: 2012-02-05 23:53:06
上一篇:下一篇: