我很确定我的问题必须有一个简单的解决方案,但我是一个新的网络开发人员并且无法弄明白。
在我的页面上,我有一个组合框,其值从我的数据库中填充。当用户提交表单时,如何将这些值转换回数据库中的记录号?
到目前为止,我一直在我的数据库中进行一种反向查找,试图获取记录的ID。这有很多明显的缺陷,我相信必须有更好的方法。我习惯于MS Forms组合框,其中记录数据和ID永远不会分开。但是对于Web表单,我无法像以前那样在组合框中执行多个列。
谢谢! 杰夫
答案 0 :(得分:2)
用于呈现option
中的选项的select
元素同时具有名称和值属性 -
<option value="23434">Name of item with id 23434</option>
在这种情况下,它将发布到服务器的值,因此您无需进行反向查找以从名称中获取ID。
答案 1 :(得分:0)
一个通用函数,用于从sql结果或其他任何数组构建select选项。
<?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>