2.7 Input对象的实现 Input对象代表了Deck元素中获取用户输入的元素,其属性和方法如下表所示:
|
属性名称 |
含义 |
|
$input_name |
输入域的名称 |
|
$input_value |
输入的值 |
|
$input_lable |
输入域的标记 |
|
$input_size |
输入域的大小 |
|
$input_maxlength |
输入域的最大长度 |
|
$input_type |
输入的类型 |
|
$input_format |
输入的格式 |
|
方法名(函数) |
功能 |
|
My_Input |
自构函数,对象创建时被自动调用 |
|
set_size |
设置$input_size |
|
set_maxlength |
设置$input_maxlength |
|
get_name |
获得$input_name |
|
get_value |
获得$input_value |
|
get_lable |
获得$input_lable |
|
get_size |
获得$input_size |
|
get_maxlength |
获得$input_maxlength |
|
get_format |
获得$input_formant |
|
My_Type |
返回对象类别(I_AM_INPUT) |
|
Make_Element |
产生与Input对象相关的代码 |
Input对象多了很多设置属性和获取属性的函数,这是为了其它函数的使用。Input对象的Make_Element对象的实现与以上对象大同小异,这里不再列举。
2.8 Select对象的实现
Select对象类似于HTML中的Radio和Checkbox,其包含的属性和方法如下表所示:
|
属性名称 |
含义 |
|
$select_name |
选择域的名称 |
|
$select_value |
选择域的值 |
|
$select_option |
选择域的选项 |
|
$option_number |
选项的数目 |
|
$select_multiple |
是否允许多选 |
|
$select_default |
默认值 |
|
方法名(函数) |
功能 |
|
My_Select |
自构函数,对象创建时被自动调用 |
|
set_multiple |
设置允许多选 |
|
get_name |
获得$select_name |
|
get_value |
获得$select_value |
|
add_option |
加入新的选项 |
|
get_defaults |
获得$select_defaults,即获得默认值 |
|
My_Type |
返回对象类别(I_AM_SELECT) |
|
Make_Element |
产生与Select对象相关的代码 |
在Select对象中,比较特殊的是add_option函数,该函数不仅实现添加选项,而且也根据入口参数,设定$select_default。由于单选和多选的$select_default不同,因此需要分开实现。对于多选,允许同时选择多个默认值值,这时默认值的格式为"默认值1;默认值2;默认值3;...."。关于add_option的代码如下所示:
|
//加入Option function add_option($label, $value,$checkit=SELECT_NOT_CHECKED) { if (!$label || !$value) die("Incorrect option,Quit");
$this->select_option[$this->option_number]["label"] = $label; $this->select_option[$this->option_number]["value"] = $value;
if(!$this->select_multiple) { if($this->select_value==""||$checkit) { $this->select_value=value; $this->select_default ["name"]=$this->select_name; $this->select_default ["value"]=$this->select_value; } } else { if($checkit) { if($this->select_value=="") $this->select_value=$value else $this->select_value.=";".$value; $this->select_default ["name"]=$this->select_name; $this->select_default ["value"]=$this->select_value; } } $this->option_number++; } |
由于多数的工作已由add_option完成,因此get_defaults函数很简单,只需返回$select_default即可,代码如下所示:
|
//获得变量默认值 function get_defaults() { return $this->select_default; } |
2.9 Do对象实现
我们这里定义的Do对象,主要完成Input、Select、Fieldset等元素的变量的传递,即当激发Do元素后,会将我们的输入和选择发送给服务器进行处理。Do对象的属性和方法如下表所示:
|
属性名称 |
含义 |
|
$do_name |
do的名称 |
|
$do_lable |
do的标记 |
|
$do_var |
do所要传递的变量 |
|
$do_url |
将变量发送到的地址 |
|
方法名(函数) |
功能 |
|
My_Do |
自构函数,对象创建时被自动调用 |
|
set_var |
设置$do_var |
|
set_url |
设置$do_url |
|
get_name |
获得$do_name |
|
My_Type |
返回对象类别(I_AM_DO) |
|
Make_Element |
产生与Do对象相关的代码 |
Do中Make_Element的实现需要开发人员对Do的组成比较了解,其中难点在代码的实现一般而言,代码的格式为: <go herf="发送到的地址?变量名1=$(变量值1)&变量名2=$(变量值2)&...... ">
针对的格式,Do对象的Make_Element函数的代码如下所示:
|
//产生Do部分的代码 function Make_Element($deck) { while (list($key, $value) = each($this->do_var)) $the_var.= $value."=$(".$value.")&";
if ($this->do_name != "") $the_var.=$this->do_name."=".$this->do_label;
if (substr($the_var, -5) == "&") $the_var = substr($the_var, 0, strlen($the_var)-5);
printf("\n", $this->do_label); printf("\n", $this->do_url, $the_var);
echo "\n"; echo "\n"; } |
|
2.10 Fieldset对象的实现 Fieldset对象比较特殊,它将Text、Image、Input等其它元素组织在一起,以便于浏览器显示。因此Fieldset对象在某些实现方法上与Deck相同。Fieldset对象的属性与方法如下表所示:
|
属性名称 |
含义 |
|
$fieldset_title |
fieldset的标题 |
|
$fieldset_element |
fieldset所包含的元素 |
|
$element_number |
fieldset所包含的元素的数目 |
|
方法名(函数) |
功能 |
|
My_Fieldset |
自构函数,对象创建时被自动调用 |
|
Add_Element |
加入新元素 |
|
get_defaults |
获取变量默认值 |
|
My_Type |
返回对象类别(I_AM_FIELDSET) |
|
Make_Element |
产生与Fieldset对象相关的代码 |
在Fieldset所包含的函数中,除get_defaults与My_Type之外,其它的实现方法同Deck对象基本相同,这是由于两者的结构类似的缘故。但是Fieldset毕竟是Deck对象的一部分,因此它还需要向Deck对象传送一些参数。 Fieldset的get_defaults函数的实现方法也利用了面向对象的特点,它调用其元素Select的get_defaults函数从而获得默认值,该部分代码如下所示:
|
//获取变量默认值 function get_defaults() { $i = 0; while (list($key, $value) = each($this->fieldset_element)) { switch ($value->My_Type()) { case I_AM_SELECT: { if($value->get_defaults()) { $temp_default=$value->get_defaults(); $fieldset_default[$i]=$temp_default; $i++; } } break; } default: { break; } } } return fieldset_default; } |
以上是关于所有对象的实现,需要注意的是,代码中我们所定义的对象名称为"My_对象名"的格式,如Text对象的名称为"My_Text"。 以上我们所定义的对象全部包含在了文件"my_wap.inc"中,以供php文件调用。 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] 下一页
|
|
[]
[返回上一页]
[打 印]
[收 藏] |
|
| ∷相关文章评论∷ (评论内容只代表网友观点,与本站立场无关!) [更多评论...] |
|