zen-cart网站,模版,采集,二次开发

首页 » ZenCart » ZenCart分析 » 阅读文章

ZenCart下拉表单输出函数:zen_draw_pull_down_menu 分析

2011-12-12 11:34 30047 1 发表评论
标签:


前文在Zen Cart下拉尺码表的修改有提到过,今天给大家详细分析下
zen_draw_pull_down_menu 函数位于 /includes/functions/html_output.php 文件,主要的作用是输出表单的下拉框。

 function zen_draw_pull_down_menu($name, $values, $default = '', $parameters = '', $required = false) {
    $field = '<select name="' . zen_output_string($name) . '"';
		//将$name定义为下拉框名称,zen_output_string()输出安全字符下文介绍
    if (zen_not_null($parameters)) $field .= ' ' . $parameters;
		//当$parameters不为空时,在$parameters前面加上一个空格
    $field .= '>' . "\n";

    if (empty($default) && isset($GLOBALS[$name]) && is_string($GLOBALS[$name]) ) $default = stripslashes($GLOBALS[$name]);

    for ($i=0, $n=sizeof($values); $i<$n; $i++) {
      $field .= '  <option value="' . zen_output_string($values[$i]['id']) . '"';
      if ($default == $values[$i]['id']) {
        $field .= ' selected="selected"';
      }
			//循环$values数组,当id键名对应值和$default 相等时,option属性框多上上 selected="selected"
      $field .= '>' . zen_output_string($values[$i]['text'], array('"' => '&quot;', '\'' => '&#039;', '<' => '&lt;', '>' => '&gt;')) . '</option>' . "\n";
    }
    $field .= '</select>' . "\n";

    if ($required == true) $field .= TEXT_FIELD_REQUIRED;

    return $field;
  }

参数介绍

参数 介绍
$name 拉框的名字
$values 下拉框属性和属性名,是个多维数组。$values其中每个子数组必须包含‘id’和‘text’这2个键名和对应的值
$default 参数指定下拉框默认的值,默认为空,传值的话,$default 的值必须是 $values 这个数组中某个子数组的 ‘id’键名对应的值
$parameter 参数用于控制 select 的外观,它会附加到 <select name="..." 的后面以及 > 之前
$required 布尔值,默认false,ture时属性框后面输入一段字符串,在后台中有应用

示例

$testName = 'DownMenu';
$testArray = array(array('id'=>'1', 'text'=>'first'),
                array('id'=>'2', 'text'=>'second'),
                array('id'=>'3', 'text'=>'third'),
                array('id'=>'4', 'text'=>'forth')
            );
$testDefault = 1;
$testParameters = 'class="SelectClass"';
echo zen_draw_pull_down_menu ($testName, $testArray, $testDefault, $testParameters,true);

输出为

<select class="SelectClass" name="DownMenu">
  <option selected="selected" value="1">first</option>
  <option value="2">second</option>
  <option value="3">third</option>
  <option value="4">forth</option>
</select>
TEXT_FIELD_REQUIRED

ps:前台中没有定义常量TEXT_FIELD_REQUIRED

相关日志:

评论 共1条 (RSS 2.0) 发表评论

  1. 大熊博客 说道:

    恩,很有用

发表评论

  • 
  • 插入代码

联系我 Contact Me

回到页首