-1

我正在尝试在多个下拉列表中预先选择我的编辑页面上的值,因此一旦用户单击编辑,就可以看到已经插入的值。值在 MySQL 中保存为逗号分隔,如“1,2,3,4,5”

尝试此解决方案但不起作用:(,有什么方法可以预先选择这些 vales?请帮助

<select name="w_owning_branches[]" size="10" id="w_owning_branches" multiple="multiple" required>
<option value="" class="dropdown-option">  Select Owning Branch  </option>
<?php do {

$value = $row_branches['branch_id'];
$name = $row_branches['name'];
$selected = '1,2,3,4,5,6';

echo "<option value='$value'".(($selected == '$value') ? " selected='selected'":"").">$name</option>";


} while ($row_branches = mysql_fetch_assoc($branches)); ?>
</select>
4

3 回答 3

1

如果我理解正确,则所选值存储在逗号分隔的字符串中,数字是先前选择的值。

在这种情况下,答案很简单:

<select name="w_owning_branches[]" size="10" id="w_owning_branches" multiple="multiple" required>
<option value="" class="dropdown-option">  Select Owning Branch  </option>
<?php do {

$value = $row_branches['branch_id'];
$name = $row_branches['name'];
$selected = '1,2,3,4,5,6';

echo "<option value='$value'".(in_array($value, explode(",",$selected)) ? " selected='selected'":"").">$name</option>";


} while ($row_branches = mysql_fetch_assoc($branches)); ?>
</select>
于 2013-08-21T17:50:35.473 回答
0

你可以使用这样的东西:

$selected = '1,2,3,4,5,6';
$selectedArr = explode(",", $selected);
echo "<option value='$value'".((in_array($value, $selectedArr))?" SELECTED ":"").">$name</option>";
于 2013-08-21T17:48:36.860 回答
0

尝试:

<select name="w_owning_branches[]" size="10" id="w_owning_branches" multiple="multiple" required>
<option value="" class="dropdown-option">  Select Owning Branch  </option>
<?php do {

$value = $row_branches['branch_id'];
$name = $row_branches['name'];
$selected = '1,2,3,4,5,6';
$selected_values = explode(",",$selected);

echo "<option value='$value'".((in_array($value,$selected_values)) ? " selected='selected'":"").">$name</option>";


} while ($row_branches = mysql_fetch_assoc($branches)); ?>
</select>
于 2013-08-21T17:48:48.063 回答