繁体   English   中英

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

[英]PHP update form that have dynamic drop down menu and also optgroup

我尝试为我的系统创建一个更新表格。 基本上,对于更新/编辑,表单应该显示我的$ row_rekod [dept']中当前选择的项(按ID) 但就我而言,它仅显示标题Jabatan ,以及helpline_jabatan表中的其余项目。 您可以看到$ selected_jabatan变量,该变量用于显示当前所选项目。 但是它不起作用。

类别(在下拉菜单的optgroup中显示)= $ 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)从数据库中获取选择值

$value = $row['selectFieldName'];

2)然后切换此值,并在匹配时使用选择的选项创建select

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

使用JavaScript,您只需在隐藏的输入中输出选择元素值,并在选项与实际值匹配的情况下将其动态标记为选中状态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM