【问题标题】:echo select options in php page?在php页面中回显选择选项?
【发布时间】:2014-08-13 10:57:13
【问题描述】:

我正在尝试使用 mysql 结果来回显选择选项。

我下面的代码只得到一个结果,但我在 mysql 数据库中有 5 个结果!

PHP 代码:

if( ! $stmt = $db_conx->prepare("SELECT id, product_name FROM $storeShop ORDER by id") ) {
  die( $db_conx->error );
}
$dropdownlist_list = "";
$stmt->bind_param('i', $id);
if ( ! $stmt->execute() ) {
  die( $stmt->error );
}
$stmt->bind_result($id, $product_name);
$stmt->store_result();

while($stmt->fetch()) {
    $valuesss[] = array('id'=>$id, 'product_name'=>$product_name);
$dropdownlist_list = '<option data-filter="'.$product_name.'">'.$product_name.'</option>';
    }

    /* close statement */
    mysqli_stmt_close($stmt);

HTML 代码:

<select id="galleryfilter" class="form-control pull-left">
                                       <?php echo $dropdownlist_list; ?>

</select>

谁能告诉我怎么了?

谢谢

【问题讨论】:

  • 你必须使用$dropdown_list .= 而不是=
  • @RaphaelMüller,谢谢哥们。愚蠢的错误..

标签: php mysql


【解决方案1】:

您必须附加新选项,目前您正在分配数据库中的最后一个值

这将起作用: $dropdownlist_list .= '&lt;option data-filter="'.$product_name.'"&gt;'.$product_name.'&lt;/option&gt;';

【讨论】:

    【解决方案2】:

    每次加载新语句时,您当前的解决方案都会覆盖现有字符串。

    试试这个:

    $dropdownlist_list = "";
    while($stmt->fetch()) {
        $valuesss[] = array('id'=>$id, 'product_name'=>$product_name);
        $dropdownlist_list .= '<option data-filter="'.$product_name.'">'.$product_name.'</option>';
    }
    

    或者更好的解决方案:

    while($stmt->fetch()) {
        $values[] = array('id'=>$id, 'product_name'=>$product_name);
    }
    

    HTML:

    <select id="galleryfilter" class="form-control pull-left">
    <?php 
        foreach ($values as $value) echo '<option data-filter="'.$value['product_name'].'">'.$value['product_name'].'</option>';
    ?>
    </select>
    

    【讨论】:

      【解决方案3】:
      $dropdownlist_list  '';    
      while($stmt->fetch()) {
          $valuesss[] = array('id'=>$id, 'product_name'=>$product_name);
          $dropdownlist_list .= '<option data-filter="'.$product_name.'">'.$product_name.'</option>';
      }
      

      你每次都在覆盖你的选项字符串。你需要append其他选项

      【讨论】:

        【解决方案4】:

        您必须使用 $dropdown_list .= 而不是 = 这将附加新选项。

        这会导致:

        $dropdown_list = "";
        while($stmt->fetch()) {
            $valuesss[] = array('id'=>$id, 'product_name'=>$product_name);
            $dropdown_list .= '<option data-filter="'.$product_name.'">'.$product_name.'</option>';
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-04-10
          • 1970-01-01
          • 1970-01-01
          • 2011-01-18
          • 2021-12-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多