站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
▼
建站程序
开发
服务器
办公软件
开发教程
▼
服务器教程
软件使用教程
运营教程
热门电子书
▼
CSS教程
WordPress教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
热点词条
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
Xoops表单
”(章节)
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
===表单基础控件=== 上一节介绍了XOOPS系统中表单的多种展现形式,XOOPS系统提供的表单控件均支持这些表现形式,前面介绍了生成文本框的 XoopsFormText类、生成提交按钮的XoopsFormButton类、生成隐藏域的XoopsFormHidden类、生成标签的 XoopsFormLabel类,本节中继续介绍其他的基础控件。本例的文件夹结构如下: <pre> /modules/formelement /images /logo.png /index.php /xoops_version.php </pre> 其中xoops_version.php文件内容如下: <pre> /modules/formelement/xoops_version.php <?php $modversion['name'] = "表单 - 基本元素"; $modversion['version'] = 0.01; $modversion['description'] = "演示表单的基本元素"; $modversion['author'] = <<<AUTHOR 胡争辉 QQ: 443089607 QQMail: hu_zhenghui@qq.com GTalk: huzhengh GMail: huzhengh@gmail.com Skype: huzhenghui" AUTHOR; $modversion['credits'] = ""; $modversion['license'] = "版权所有"; $modversion['image'] = "images/logo.png"; $modversion['dirname'] = "formelement"; $modversion["hasMain"] = 1; ?> </pre> 页面源代码如下。 <pre> /modules/formelement/index.php <?php require_once dirname(__FILE__)."/../../mainfile.php"; $myts = MyTextSanitizer::getInstance(); /* 详见源文件 */ include XOOPS_ROOT_PATH."/header.php"; include_once XOOPS_ROOT_PATH."/class/xoopsformloader.php"; $form_element = new XoopsThemeForm("Form Element", "form_element", ""); /* 详见源文件 */ $form_element->display(); include XOOPS_ROOT_PATH."/footer.php"; ?> </pre> 生成的页面效果如图3-3基本元素所示。 <div> [[Image:xop106.png]] </div> 由于需要处理提交表单,所以先获取文本处理对象。 $myts = MyTextSanitizer::getInstance(); 在对提交的数据处理后,开始显示页面,先加载表单相关类。 include_once XOOPS_ROOT_PATH."/class/xoopsformloader.php"; 然后创建表单对象。 $form_element = new XoopsThemeForm("Form Element", "form_element", ""); 为表单对象添加控件后显示表单。 $form_element->display(); 下面逐一讲解表单中的控件以及相应的处理方式。首先处理复选框,先判断是否提交了复选框控件的数据。复选框控件包括任意多个复选框,所以数据应为数组,如果没有提交复选框数据,则数据值应为空数组。 <pre> if (false === isset($_POST["checkbox"])) { $checkbox = array(); </pre> 如果提交的数据不是数组,则数据值也应为数组。 <pre> } elseif (false === is_array($_POST["checkbox"])) { $checkbox = array(); </pre> 如果提交的数据是数组,则需要对提交的数据转义,还原成原始数据。 <pre> } else { $checkbox = array(); foreach ($_POST["checkbox"] as $checkbox_value) { if(true === is_string($checkbox_value)) { $checkbox[] = $myts->stripSlashesGPC($checkbox_value); } } } </pre> 这里通过遍历数组成员,对每个成员转义然后组合成数据数组。复选框控件支持初始值,但是复选框的初始值需要经过转义,由于复选框的初始值是数组,所以需要遍历数组成员,对每个成员转义后组合成数组。 <pre> $checkbox_values = array(); foreach ($checkbox as $checkbox_value) { $checkbox_values[] = $myts->htmlSpecialChars($checkbox_value); } </pre> 其中htmlSpecialChars函数是MyTextSanitizer类的成员函数,定义如下。 <pre> /class/module.textsanitizer.php function htmlSpecialChars($text) {} </pre> 转义后生成的数组可以作为创建复选框控件的初始值。 $form_checkbox = new XoopsFormCheckBox("Check Box", "checkbox", $checkbox_values); 其中XoopsFormCheckBox是复选框类,构造函数定义如下。 <pre> /class/xoopsform/formcheckbox.php function XoopsFormCheckBox($caption, $name, $value = null, $delimeter = "") {} </pre> 参数$caption是复选框的标题,参数$name是复选框的名称,参数$value是复选框的初始值。创建复选框对象后,可以向复选框添加选项。 <pre> $form_checkbox->addOption("disablesmiley", _DISABLESMILEY); $form_checkbox->addOption("disablehtml", _DISABLEHTML); </pre> 其中addOption是XoopsFormCheckBox类的成员函数,定义如下。 function addOption($value, $name="") {} 其中参数$value是复选框的值,参数$name是复选框显示的文字。本例中复选框的值是固定内容,而且没有需要转义的特殊字符,所以直接传入,如果是可变的内容,而且包括需要转义的特殊字符,则需要转义,本例的代码则需要改为如下的形式。 <pre> $form_checkbox->addOption($myts->htmlSpecialChars("disablesmiley"), _DISABLESMILEY); $form_checkbox->addOption($myts->htmlSpecialChars("disablehtml"), _DISABLEHTML); </pre> 添加选项后就可以把复选框对象加入到表单中。 $form_element->addElement($form_checkbox); 最后在页面中生成的HTML代码如下。 <pre> <input type='checkbox' name='checkbox[]' value='disablesmiley' />关闭表情图 <input type='checkbox' name='checkbox[]' value='disablehtml' />关闭HTML语法 </pre> 通过对比可以了解复选框对象生成HTML代码的方式。然后讲解密码框,先判断是否提交了密码框控件的数据,密码框的数据应当是字符串,如果没有提交相应的数据,则设置为空字符串。 <pre> if (false === isset($_POST["password"])) { $password = ""; </pre> 然后判断提交的数据是否是字符串,如果不是字符串则设置密码框的值为空字符串。 <pre> } elseif (false === is_string($_POST["password"])) { $password = ""; </pre> 如果提交的数据是字符串,则转义后获取用户提交的内容。 <pre> } else { $password = $myts->stripSlashesGPC($_POST["password"]); } </pre> 用户提交的内容作为密码框控件的初始值时,还需要进行转义。 <pre> $form_password = new XoopsFormPassword("Password", "password", 20, 20, $myts->htmlSpecialChars($password)); </pre> 其中XoopsFormPassword是密码框类,构造函数定义如下。 <pre> /class/xoopsform/formpassword.php function XoopsFormPassword($caption, $name, $size, $maxlength, $value="") {} </pre> 参数$caption是密码框的标题,参数$name是密码框的名称,参数$size是密码框的显示大小,参数$maxlength是密码框中文字的最大长度,参数$value是密码框的初始值,该值需要转义。创建对象后,就可以把密码框加入到表单中。 $form_element->addElement($form_password); 最后在页面中生成的HTML代码如下。 <input type='password' name='password' id='password' size='20' maxlength='20' value='' /> 通过对比可以了解密码框的生成方式。接下来讲解单选按钮,先判断是否提交了单选按钮的数据,单选按钮的数据应当是字符串,如果没有提交相应的数据,则设置单选按钮提交的数据为空字符串。 <pre> if (false === isset($_POST["radio"])) { $radio = ""; </pre> 然后判断提交的数据是否是字符串,如果不是字符串则设置单选按钮提交的数据为空字符串。 <pre> } elseif (false === is_string($_POST["radio"])) { $radio = ""; </pre> 如果提交的数据是字符串,则转义后获取用户通过单选按钮提交的内容。 <pre> } else { $radio = $myts->stripSlashesGPC($_POST["radio"]); } </pre> 用户提交的内容作为单选按钮的初始值时,还需要进行转义。 $form_radio = new XoopsFormRadio("Radio","radio", $myts->htmlSpecialChars($radio)); 其中XoopsFormRadio是单选按钮类,构造函数定义如下。 <pre> /class/xoopsform/formradio.php function XoopsFormRadio($caption, $name, $value = null, $delimeter = "") {} </pre> 参数$caption是单选按钮的标题,参数$name是单选按钮的名称,参数$value是单选按钮的初始值,该值需要转义。创建对象后,就可以为单选按钮添加选项了。 <pre> $form_radio->addOption("left", _LEFT); $form_radio->addOption("center", _CENTER); $form_radio->addOption("right", _RIGHT); </pre> 其中addOption是XoopsFormRadio类的成员函数,定义如下。 function addOption($value, $name="") {} 其中参数$value是单选按钮的值,参数$name是单选按钮显示的文字。本例中单选按钮的值是固定内容,而且没有需要转义的特殊字符,所以直接传入,如果是可变的内容,而且包括需要转义的特殊字符,则需要转义,本例的代码则需要改为如下的形式。 <pre> $form_radio->addOption($myts->htmlSpecialChars("left"), _LEFT); $form_radio->addOption($myts->htmlSpecialChars("center"), _CENTER); $form_radio->addOption($myts->htmlSpecialChars("right"), _RIGHT); </pre> 添加选项后就可以把单选按钮对象加入到表单中。 $form_element->addElement($form_radio); 在页面中生成的HTML代码如下。 <pre> <input type='radio' name='radio' value='left' />靠左 <input type='radio' name='radio' value='center' />居中 <input type='radio' name='radio' value='right' />靠右 </pre> 通过对比可以了解单选按钮的生成方式。然后讲解选择框,选择框包括单项选择框和多项选择框两种情况,首先讲解单项选择框,与单选按钮类似,先判断是否提交了单项选择框的数据,单项选择框的数据应当是字符串,如果没有提交相应的数据,则设置单项选择框提交的数据为空字符串。 <pre> if (false === isset($_POST["selectsingle"])) { $select_single = ""; </pre> 然后判断提交的数据是否是字符串,如果不是字符串则设置单项选择框提交的数据为空字符串。 <pre> } elseif (false === is_string($_POST["selectsingle"])) { $select_single = ""; </pre> 如果提交的数据是字符串,则转义后获取用户通过单项选择框提交的内容。 <pre> } else { $select_single = $myts->stripSlashesGPC($_POST["selectsingle"]); } </pre> 用户提交的内容作为单项选择框的初始值时,不需要进行转义。 $form_select_single = new XoopsFormSelect("Select Single", "selectsingle", $select_single); 其中XoopsFormSelect是选择框类,构造函数定义如下。 <pre> /class/xoopsform/formselect.php function XoopsFormSelect($caption, $name, $value=null, $size=1, $multiple=false) {} </pre> 参数$caption是选择框的标题,参数$name是选择框的名称,参数$value是选择框的初始值,该值需要转义,参数$size是选择框显示的条目数,参数$multiple指示选择框为单项选择框还是多项选择框,值为false时代表单项选择框,值为true时代表多项选择框,默认值是 false。创建对象后,就可以为单项选择框添加选项了。 <pre> $form_select_single->addOption("startswith", _STARTSWITH); $form_select_single->addOption("endswith", _ENDSWITH); $form_select_single->addOption("matches", _MATCHES); $form_select_single->addOption("contains", _CONTAINS); </pre> 其中addOption是XoopsFormSelect类的成员函数,定义如下。 function addOption($value, $name="") {} 其中参数$value是选项的值,参数$name是选项显示的文字。与复选框和单选按钮不同,选择框会对选项的值进行转义处理,所以在传入时不需要额外的转义。添加选项后就可以把单项选择框加入到表单中。 $form_element->addElement($form_select_single); 在页面中生成的HTML代码如下。 <pre> <select size='1' name='selectsingle' id='selectsingle'> <option value='startswith' selected='selected'>起始</option> <option value='endswith'>结束</option> <option value='matches'>符合</option> <option value='contains'>包含</option> </select> </pre> 通过对比可以了解单项选择框的生成方式。下面讲解多项选择框,与复选框类似,先判断是否提交了多项选择框的数据。多项选择框允许同时选择任意多个选项,所以数据应为数组,如果没有提交多项选择框数据,则数据值应为空数组。 <pre> if (false === isset($_POST["selectmultiple"])) { $select_multiple = array(); </pre> 如果提交的数据不是数组,则数据值也应为数组。 <pre> } elseif (false === is_array($_POST["selectmultiple"])) { $select_multiple = array(); </pre> 如果提交的数据是数组,则需要对提交的数据转义,还原成原始数据。 <pre> } else { $select_multiple = array(); foreach ($_POST["selectmultiple"] as $select_value) { if (true === is_string($select_value)) { $select_multiple[] = $myts->stripSlashesGPC($select_value); } } } </pre> 这里通过遍历数组成员,对每个成员转义然后组合成数据数组。用户提交的数据作为多项选择框的初始值时,不需要进行转义。 <pre> $form_select_multiple = new XoopsFormSelect("Select Multiple", "selectmultiple", $select_multiple, 5, true); </pre> 创建多项选择框后,可以向多项选择框添加选项。 <pre> $form_select_multiple->addOption("second", _SECOND); $form_select_multiple->addOption("minute", _MINUTE); $form_select_multiple->addOption("hour", _HOUR); $form_select_multiple->addOption("day", _DAY); $form_select_multiple->addOption("week", _WEEK); $form_select_multiple->addOption("month", _MONTH); </pre> 添加选项后就可以把复选框对象加入到表单中。 $form_element->addElement($form_select_multiple); 最后在页面中生成的HTML代码如下。 <pre> <select size='5' name='selectmultiple[]' id='selectmultiple[]' multiple='multiple'> <option value='second'>1秒</option> <option value='minute'>1分钟</option> <option value='hour'>1小时</option> <option value='day'>1天</option> <option value='week'>1周</option> <option value='month'>1月</option> </select> </pre> 通过对比可以了解多项选择框对象生成HTML代码的方式。接下来讲解重置按钮,重置按钮与提交按钮类似,都是通过XoopsFormButton类生成,区别在于参数$type的值设置为reset。 <pre> $form_reset = new XoopsFormButton("reset", "reset", "Reset", "reset"); $form_element->addElement($form_reset); </pre> 为了便于查看提交的结果,本例还在表单中增加标签显示提交的内容,如图 3 4 基本元素提交的结果所示。 <div> [[Image:xop107.png]] </div>
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)