select 函数显示双重重复数据
The select funtion show double duplicate data
我在 select 函数中遇到问题,为什么 select 数据显示双重重复数据?希望有人能指导我我哪里出错了。谢谢。
下面是我的编码:
<select class="form-control" id="jabatan_yang_akses" name="jabatan_yang_akses" title="jabatan_yang_akses" multiple="multiple" style="display:none;">
<!--<option value="0">Sila Pilih</option>-->
<?php
$sql_branch = 'select * from singkatan_jabatan';
$arr_branch = db_conn_select($sql_branch);
foreach ($arr_branch as $rs_branch) {
foreach ($jabatan_yang_akses_selected as $select_jabatan){
if ($select_jabatan == $rs_branch['id']) {
$selected = 'selected';
} else {
$selected = '';
}
echo '<option value="' . $rs_branch['id'] . '" ' . $selected . '>' . $rs_branch['singkatan_nama'] . '</option>';
}
}
?>
</select>
输出如下图所示:
其实我想要如下图的输出:
我不确定我是否使用了两次 foreach 然后会在 select 框中显示重复数据。
更新:
问题是你 select 所有的选项,然后遍历 selected 的选项并为所有可能的 selected 项目输出每个选项(在这种情况下有 2 个 selected 项)。如果你有 4 个 selected 项目,每个选项将输出 4 次。
您可以使用 in_array()
...
检查选项 ID 是否在 selected 项目列表中
foreach ($arr_branch as $rs_branch) {
if ( in_array($rs_branch['id'], $jabatan_yang_akses_selected) ) {
$selected = 'selected';
} else {
$selected = '';
}
echo '<option value="' . $rs_branch['id'] . '" ' . $selected . '>' . $rs_branch['singkatan_nama'] . '</option>';
}
我在 select 函数中遇到问题,为什么 select 数据显示双重重复数据?希望有人能指导我我哪里出错了。谢谢。
下面是我的编码:
<select class="form-control" id="jabatan_yang_akses" name="jabatan_yang_akses" title="jabatan_yang_akses" multiple="multiple" style="display:none;">
<!--<option value="0">Sila Pilih</option>-->
<?php
$sql_branch = 'select * from singkatan_jabatan';
$arr_branch = db_conn_select($sql_branch);
foreach ($arr_branch as $rs_branch) {
foreach ($jabatan_yang_akses_selected as $select_jabatan){
if ($select_jabatan == $rs_branch['id']) {
$selected = 'selected';
} else {
$selected = '';
}
echo '<option value="' . $rs_branch['id'] . '" ' . $selected . '>' . $rs_branch['singkatan_nama'] . '</option>';
}
}
?>
</select>
输出如下图所示:
其实我想要如下图的输出:
我不确定我是否使用了两次 foreach 然后会在 select 框中显示重复数据。
更新:
问题是你 select 所有的选项,然后遍历 selected 的选项并为所有可能的 selected 项目输出每个选项(在这种情况下有 2 个 selected 项)。如果你有 4 个 selected 项目,每个选项将输出 4 次。
您可以使用 in_array()
...
foreach ($arr_branch as $rs_branch) {
if ( in_array($rs_branch['id'], $jabatan_yang_akses_selected) ) {
$selected = 'selected';
} else {
$selected = '';
}
echo '<option value="' . $rs_branch['id'] . '" ' . $selected . '>' . $rs_branch['singkatan_nama'] . '</option>';
}