“数组”显示在下拉列表中,而不是从数据库中获取的值

时间:2013-07-23 22:31:31

标签: php html-select

来自html_form_class

代码段

<?php
$frmStr = $frm->addSelectList(
                      'city',
                      $city,
                      true,
                      '',
                      '--- Select City ---',
                      array(
                          'class' => 'dropdown-style5',
                          'id' => 'city')); 
echo $frmStr; ?>
来自seachcar.php的

代码段

   $city = $db->select('City','City_Name');
foreach($city as $row)
{
 $row;
}

“数组”显示在下拉列表中,而不是从数据库中获取的值 请建议!

function addSelectList($name, $option_list, $bVal = true, $selected_value = NULL,
            $header = NULL, $attr_ar = array() ) {
        $str = "<select name=\"$name\"";
        if ($attr_ar) {
            $str .= $this->addAttributes( $attr_ar );
        }
        $str .= ">\n";
        if ( isset($header) ) {
            $str .= "  <option value=\"\">$header</option>\n";
        }
        foreach ( $option_list as $val => $text ) {
            $str .= $bVal? "  <option value=\"$val\"": "  <option";
            if ( isset($selected_value) && ( $selected_value === $val || $selected_value === $text) ) {
                $str .= $this->xhtml? ' selected="selected"': ' selected';
            }
            $str .= ">$text</option>\n";
        }
        $str .= "</select>";
        return $str;
    }

addSelectList函数的html输出是

  <select name="city" class="dropdown-style5" id="city">
  <option value="">--- Select City ---</option>
  <option value="0">Array</option>
  <option value="1">Array</option>
  <option value="2">Array</option>
  <option value="3">Array</option>

3 个答案:

答案 0 :(得分:2)

您需要重建城市数组:

$city = $db->select('City','City_Name');
$city_rebuild = array();
foreach($city as $row) {
    $city_rebuild[] = $row['City_Name'];
}
$city = $city_rebuild;

答案 1 :(得分:0)

你做了数组的回声。你的抽象对象有些不对劲。您必须迭代数组才能显示其值。

答案 2 :(得分:0)

function addSelectList创建一个“dropdown”(实际上是一个选择元素)

您需要从函数输出中删除html。

修改1 我对你的目标很困惑。在你的foreach($ option_list ...中,您需要知道$ option_list数组中可用的键以及您希望在选择下拉列表中显示的内容。