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


"Array" is displaying in dropdown instead of values fetched from database

来自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>

您需要重建城市阵列:

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

您执行数组的回显。抽象对象中出现了问题。必须对数组进行迭代才能显示其值。

函数addSelectList创建一个"下拉列表"(实际上是一个选择元素)

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

编辑1我对你要干什么感到困惑。在您的foreach($option_list…)中,您需要知道$options_list数组中有哪些键可用,以及您希望在选择下拉列表中显示什么。