如果有一个有趣的问题,我会很好。我正在尝试在codeignitert中预填充编辑表单。我有大部分值来自数据库,但我的选择框给了我一些问题。我希望它只突出显示他们之前选择的内容而不是删除列表,并用他们选择的内容填写它...如果有任何意义。
这是我的HTML
<?foreach($info as $row) :?>
<select multiple="multiple" class="multi" name="wGenre[]">
<option value="Action/Adventure">Action/Adventure</option>
<option value="Angst">Angst</option>
<option value="Crime">Crime</option>
<option value="Drama">Drama</option>
<option value="Family">Family</option>
<option value="Fantasy">Fantasy</option>
<option value="Friendship">Friendship</option>
<option value="General">General</option>
</select>
<?endforeach;?>
我已经尝试了几件事。我已经尝试将列表放在内部for循环中并尝试选择通过echo返回的内容,但这只会让我犯错误。我可以为每个项目做一个单独的if语句,但是我缩短了上面的列表并且有另一个就像它一样,这似乎是不必要的代码量。
如果有帮助,当我回显整个列表时,它会以字符串形式返回,就像这样。 Fantasy Friendship General和我确实启用了全文搜索。
提前感谢您的帮助! :)
答案 0 :(得分:3)
<select multiple="multiple" class="multi" name="wGenre[]">
<option value="Action/Adventure" <?php if(in_array('Action/Adventure',$info)) echo 'selected="selected"';?>>Action/Adventure</option>
为所有
做同样的事情答案 1 :(得分:0)
试试这个:
<select onchange="getwGenre(this.value);" name="wGenre" id="wGenre" >
<?php foreach( $info as $row ) {
$sel = '';
if( $row["wGenre_wGenre_name"] == $selected )
$sel = 'selected="selected"';
echo '<option value="'.$row["wGenre_wGenre_name"].'" '.$sel.'>'.$row["wGenre_wGenre_name"].'</option>'."\n";
} ?>
</select>
<?php echo form_error('wGenre'); ?>