【问题标题】:Html combo box to database record Id数据库记录 ID 的 Html 组合框
【发布时间】:2010-05-17 12:29:41
【问题描述】:

我很确定必须有一个简单的解决方案来解决我的问题,但我是一名新的 Web 开发人员,无法完全弄清楚。

在我的页面上,我有一个组合框,其值是从我的数据库中填充的。当用户提交表单时,我如何将这些值转换回数据库中的记录号?

到目前为止,我只是在我的数据库中进行了一种反向查找,以尝试获取记录的 ID。这有很多明显的缺陷,我相信必须有更好的方法。我习惯了 MS Forms 组合框,其中记录数据和 ID 永远不会分开。但是对于 web 表单,我无法像以前那样在组合框中做多个列。

谢谢! 杰夫

【问题讨论】:

  • HTML 不做组合框。你的意思是“一个选择元素”(它通常呈现一个下拉菜单,或者你正在用 JavaScript 做一些事情来模拟一个组合框?
  • 你说得对,我的意思是一个选择元素。

标签: php javascript html combobox webforms


【解决方案1】:

用于呈现select 中的选项的option 元素同时具有名称和值属性 -

<option value="23434">Name of item with id 23434</option>

在这种情况下,它的值将被发布到服务器,因此您无需进行反向查找即可从名称中获取 id。

【讨论】:

  • 我知道必须有一个简单的解决方案!谢谢。
  • 简单易行,有时 HTML 并不是那么糟糕。
【解决方案2】:

一个通用函数,用于从 sql 结果数组或其他任何内容中构建选择选项。

<?php
function buildOptions( $options, $value, $label ){

    foreach ( $options as $option ):    
    echo '<option value="'.$option[ $value ].'">'.$option[ $label ].'</option>'."\n";
    endforeach;
}
?>

用法...

<select name="dropdown">
<?php
    $arr = array(
       array( 'id'=>1, 'name'=>'item 1'),
        array( 'id'=>2, 'name'=>'item 2'),
        array( 'id'=>3, 'name'=>'item 3'),
        array( 'id'=>4, 'name'=>'item 4')
      );

    buildOptions( $arr, 'id', 'name' ); 
?>
</select>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 2013-06-07
    • 2014-08-05
    相关资源
    最近更新 更多