PHP更新表单有动态下拉菜单和optgroup



我试图为我的系统创建一个更新表单。基本上,对于更新/编辑,表单应该显示我的$row_rekod[dept']中当前选择的项目(按id)。但在我的情况下,它只显示Jabatan的标题,以及helpline_Jabatan中的其余项目。您可以看到$selected_jabatan用于显示当前所选项目的变量。但它不起作用。

类别(显示在下拉菜单的选项组中)=$dept['kategori_jabatan']列表中显示的所有项目=$dept['jabatan']

<select name="Jabatan" id="Jabatan">
option value="-1" selected="selected" disabled="disabled">Jabatan</option>
<?php
$query_1 = mysql_query("SELECT * FROM helpline_jabatan ORDER BY no_jabatan ASC");
$depts = array();
while($row_1 = mysql_fetch_assoc($query_1)) {
    array_push($depts, $row_1);
    $selected_jabatan = $row_1['jabatan'] == $row_rekod['dept'] ? ' selected="selected"': '';
    echo $selected_jabatan;
}
$dept_type = '';
foreach ($depts as $dept) {    
if ($dept_type != $dept['kategori_jabatan']) {
    if ($dept_type != '') {
       echo '<option></option>';
       echo '</optgroup>';
    }
    echo '<optgroup label="'.ucfirst($dept['kategori_jabatan']).'"';
    }
    echo '<option value="'.$dept['jabatan'].'" ' .$selected_jabatan.'>'.htmlspecialchars($dept['jabatan']).'</option>';
    $dept_type = $dept['kategori_jabatan'];
    }
}
if ($dept_type != '') {
echo '</optgroup>';
?>
</select>

查看动态下拉菜单是成功的,但不是它应该在我加载页面时显示我当前所选项目的部分。有什么办法解决这个问题吗?

使用JavaScript很容易,但如果你只懂PHP,你可以做这样的事情。

1) 从数据库中获取select的值

$value = $row['selectFieldName'];

2) 然后切换该值,当它匹配时,创建带有所选选项的select

switch($value):
{
    case 'first':
        here you create select element with option selected that matches   $value;
    break;
}

使用JavaScript,您只需在隐藏输入中输出select元素值,并动态地将选项标记为选中,以防它与实际值匹配。

最新更新