Home > php教程 > php手册 > [PHP]CodeIgniter学习手册(五):表单辅助函数Form的应用教程

[PHP]CodeIgniter学习手册(五):表单辅助函数Form的应用教程

WBOY
Release: 2016-06-06 19:57:19
Original
1575 people have browsed it

载入辅助函数 用下面的代码载入该辅助函数: $this-load-helper('form'); form_open() 允许你添加一些form属性和一些隐藏表单,并且他会基于你的 config.php 文件里设置的编码,自动生成 accept-charset 这个属性。 使用这个函数而不是直接硬编码HTML的主要

载入辅助函数
用下面的代码载入该辅助函数:
$this->load->helper('form');
Copy after login


form_open()

允许你添加一些form属性和一些隐藏表单,并且他会基于你的 config.php 文件里设置的编码,自动生成 accept-charset 这个属性。使用这个函数而不是直接硬编码HTML的主要的优势是使你的程序可以方便的转换,如果你的URL变化的话。

下面是一个例子:
echo form_open('email/send');
Copy after login
上面的例子会创建一个form提交至你的基础URL加上"email/send" URI片段,像这样:
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login


添加一些属性

可以在第二个参数里传递一个关联数组来达到这一目的, 像这样:

$attributes = array('class' => 'email', 'id' => 'myform');
echo form_open('email/send', $attributes);
Copy after login

Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login

增加隐藏域

隐藏域可以使用数组加在第三个参数上,就像这样:

$hidden = array('username' => 'Joe', 'member_id' => '234');
echo form_open('email/send', '', $hidden);
Copy after login

Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login

form_open_multipart()

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


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

echo form_hidden('username', 'johndoe');
Copy after login
将产生:
<input type="hidden" name="username" value="johndoe">
Copy after login
或者你也可以使用数组来联合创建它们:
$data = array(
              'name'  => 'John Doe',
              'email' => 'john@example.com',
              'url'   => 'http://example.com'
            );

echo form_hidden($data);
Copy after login
将产生:
<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">
Copy after login



form_input()
可以使你创建一个标准输入栏。你可以在第一和第二个参数里输入name和value来创建一个:

echo form_input('username', 'johndoe');
Copy after login
或者你也可以用关联数组来添加你想加入的内容:
$data = array(
              'name'        => 'username',
              'id'          => 'username',
              'value'       => 'johndoe',
              'maxlength'   => '100',
              'size'        => '50',
              'style'       => 'width:50%',
            );

echo form_input($data);
Copy after login
将产生:
<input type="text" name="username" id="username" value="johndoe" maxlength="100" size="50" style="width:50%">
Copy after login
如果你想加入一些额外的内容,例如Javascript,你可以在第三个参数里输入字符串来创建它:
$js = 'onClick="some_function()"';
echo form_input('username', 'johndoe', $js);
form_password()
Copy after login

此函数除了是设置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');
Copy after login
将会生成:
<select name="shirts">
<option value="small">Small Shirt</option>
<option value="med">Medium Shirt</option>
<option value="large" selected>Large Shirt</option>
<option value="xlarge">Extra Large Shirt</option>
</select>
Copy after login


echo form_dropdown('shirts', $options, $shirts_on_sale);
Copy after login
将会生成:
<select name="shirts" multiple>
<option value="small" selected>Small Shirt</option>
<option value="med">Medium Shirt</option>
<option value="large" selected>Large Shirt</option>
<option value="xlarge">Extra Large Shirt</option>
</select>
Copy after login

$js = 'id="shirts" onChange="some_function();"';
echo form_dropdown('shirts', $options, 'large', $js);
Copy after login



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



form_fieldset()


echo form_fieldset('Address Information');
echo "<p>fieldset content here</p>\n";
echo form_fieldset_close();
Copy after login
生成
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Address Information

form content here


与其它函数类似,在第二个参数你可以传递一个关联数组来添加你自己想要的自定义的属性。

$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();
Copy after login
生成
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Address Information

form content here



form_fieldset_close()

$string = "";
echo form_fieldset_close($string);
Copy after login
会生成:

Copy after login




form_checkbox()
作用是生成一个复选框。简单范例如下:

echo form_checkbox('newsletter', 'accept', TRUE);
Copy after login
将会生成:
<input type="checkbox" name="newsletter" value="accept" checked>
Copy after login
第三个参数为 TRUE/FALSE 布尔值,决定复选框是否被默认选中。
与其它表单辅助函数相似的是,你可以把包含了属性值的数组作为参数传递给本函数:

$data = array(
    'name'        => 'newsletter',
    'id'          => 'newsletter',
    'value'       => 'accept',
    'checked'     => TRUE,
    'style'       => 'margin:10px',
    );

echo form_checkbox($data);
Copy after login
将会生成:
<input type="checkbox" name="newsletter" id="newsletter" value="accept" checked style="margin:10px">
Copy after login

$js = 'onClick="some_function()"';
echo form_checkbox('newsletter', 'accept', TRUE, $js);
Copy after login


form_radio()

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



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

echo form_submit('mysubmit', 'Submit Post!');
Copy after login
会生成:
<input type="submit" name="mysubmit" value="Submit Post!">
Copy after login

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



form_label()
帮助你生成一个label.示例如下:

echo form_label('你的名字是?','username');
Copy after login
会生成:
<label for="username">你的名字是?</label>
Copy after login
与其它函数类似,你可以在第三个参数传入一个关联数组来增加一些额外的属性值。
$attributes = array(
'class' => 'mycustomclass',
'style' => 'color: #000;',
);
echo form_label('你的名字是?', 'username', $attributes);
Copy after login
会生成:
<label for="username" class="mycustomclass" style="color: #000;">你的名字是?</label>
Copy after login


form_reset()

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



form_button()
作用是生成一个标准的按钮。你至少要给出两个参数,它们分别是按钮的名称和内容:

echo form_button('name','content');
Copy after login
将会生成
<button name="name" type="button">Content</button>
Copy after login
或者你也可以将一个包含有任何你想要的数据的关联数组作为参数传递过去:
$data = array(
    'name' => 'button',
    'id' => 'button',
    'value' => 'true',
    'type' => 'reset',
    'content' => 'Reset'
);

echo form_button($data);
Copy after login
将会生成:
<button name="button" id="button" value="true" type="reset">Reset</button> 
Copy after login
如果你希望表单包含一些额外的数据,例如JavaScript,你可以将一个字符串作为第三个参数传递过去:
$js = 'onClick="some_function()"';
echo form_button('mybutton', 'Click Me', $js);
Copy after login


form_close()

$string = "";
echo form_close($string);
Copy after login
将会生成:
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login
Copy after login


form_prep()
允许你放心地在表单元素中使用HTML字符(例如引号),不必担心破坏表单。考虑一下下面这个范例:

$string = 'Here is a string containing "quoted" text.';
<input type="text" name="myform" value="<var<$string</var<">
Copy after login
因为上面的字符串中包含了引号,因而导致表单被破坏。form_prep()函数会转换HTML,因此可以放心使用:
<input type="text" name="myform" value="<var<<?php echo form_prep($string); ?></var<">
Copy after login

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



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

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

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



set_select()
如果你使用

<select name="myselect">
<option value="one" echo set_select true> >One</option>
<option value="two" echo set_select> >Two</option>
<option value="three" echo set_select> >Three</option>

</select>
Copy after login


set_checkbox()

允许你显示一个处于提交状态的复选框。第一个参数必须包含此复选框的名称,第二个参数必须包含它的值,第三个参数是可选的,作用是设置复选框为默认选中状态(使用TRUE/FALSE布尔值)。例如:
<input type="checkbox" name="mycheck" value="1" echo set_checkbox> />
<input type="checkbox" name="mycheck" value="2" echo set_checkbox> />
Copy after login


set_radio()

允许你显示那些处于提交状态的单选框。这个函数与前面的 set_checkbox() 是相同的。

<input type="radio" name="myradio" value="1" echo set_radio true> />
<input type="radio" name="myradio" value="2" echo set_radio> />
Copy after login
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template