0

如果有一个有趣的问题,我很高兴。我正在尝试在 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 循环并尝试选择通过回显返回的内容,但这只会给我带来错误。我可以为每个项目做一个单独的 if 语句,但我缩短了上面的列表并有另一个类似的列表,这似乎是不必要的代码量。

如果有帮助,当我回显整个列表时,它会以字符串的形式返回,就像这样。Fantasy Friendship General 和我确实启用了全文搜索。

预先感谢您的任何帮助!:)

4

2 回答 2

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>

为所有人做同样的事情

于 2013-05-18T18:23:02.660 回答
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'); ?>
于 2013-05-18T19:02:40.497 回答