从sql数据库中选择html选择列表

时间:2013-05-18 18:17:05

标签: php html codeigniter

如果有一个有趣的问题,我会很好。我正在尝试在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和我确实启用了全文搜索。

提前感谢您的帮助! :)

2 个答案:

答案 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'); ?>