更改组合框的默认值

时间:2015-03-18 18:37:12

标签: php combobox

我正在使用osTicket,我们想要更改组合框的默认值。

这是组合框所在的代码:

    <tr>
        <td width="160">
            <?php echo __('Department'); ?>:
        </td>
        <td>
            <select name="deptId">
                <option value="" selected >&mdash; <?php echo __('Select Department'); ?>&mdash;</option>
                <?php
                if($depts=Dept::getDepartments()) {
                    foreach($depts as $id =>$name) {
                        echo sprintf('<option value="%d" %s>%s</option>',
                                $id, ($info['deptId']==$id)?'selected="selected"':'',$name);
                    }
                }
                ?>
            </select>
            &nbsp;<font class="error"><?php echo $errors['deptId']; ?></font>
        </td>
    </tr>

我希望默认为&#39; Unassigned&#39;,这是组合框中的选项之一:

enter image description here

当我进行更改时,我最终再次添加该值,然后它不会保存它。

这是我的更改,但无效:

<option value="" selected >Unassigned</option>

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我认为您可以在foreach循环中检查正确的值,然后使用所选属性分配该值。

&#13;
&#13;
 <?php
                if($depts=Dept::getDepartments()) {
                    foreach($depts as $id =>$name) {
                    if($id === $info["deptId"]) {
                        echo '<option value="$id" selected="selected">$name</option>';
                     } else 
                            {
                       echo '<option value="$id">$name</option>';
                      }
                                
                    }
                }
                ?>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

尝试找出&#34;未分配&#34;的正确值。选项是。 您可以通过查看原始HTML代码来实现。我怀疑它是这样的整数:

<option value="7">Unassigned</option>

如果&#34;未分配&#34;的正确值是为了expamle&#34; 7&#34;您应该尝试找出$info['deptId']的默认值。您可以通过在发布的代码旁边的php代码中的某处插入var_dump($info['deptId'])来实现。我怀疑它是一个空字符串或NULL。假设它是一个空字符串,您应该在打印选择之前插入以下代码:

if($info['deptId'] == "") {
    $info['deptId'] = 7;
}

由于原始逻辑,&#34;未分配&#34;如果$info['deptId']的值具有&#34;未分配&#34;的正确值,则应选择该选项。负责该行为的重要代码是:

($info['deptId']==$id)?'selected="selected"':''