我正在使用osTicket,我们想要更改组合框的默认值。
这是组合框所在的代码:
<tr>
<td width="160">
<?php echo __('Department'); ?>:
</td>
<td>
<select name="deptId">
<option value="" selected >— <?php echo __('Select Department'); ?>—</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>
<font class="error"><?php echo $errors['deptId']; ?></font>
</td>
</tr>
我希望默认为&#39; Unassigned&#39;,这是组合框中的选项之一:
当我进行更改时,我最终再次添加该值,然后它不会保存它。
这是我的更改,但无效:
<option value="" selected >Unassigned</option>
有什么建议吗?
答案 0 :(得分:1)
我认为您可以在foreach循环中检查正确的值,然后使用所选属性分配该值。
<?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;
答案 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"':''