2013-05-18 88 views
0

如果有一个有趣的问题,我会友好的。我正尝试在codeignitert中预先填写编辑表单。我通过数据库获得了大部分值,但是我的选择框给了我几个问题。我希望它只突出显示他们以前选择的内容,不要删除列表,并用他们选择的内容填写它们......如果这样做有任何意义。从sql数据库中选择html选择列表

这里是我的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;?> 

我已经尝试了几件事情。我曾尝试将列表放入内循环中,并试图选择通过回显返回的内容,但这只会给我带来错误。我可以为每个项目做一个单独的if语句,但是我缩短了上面的列表,并且有另一个类似的代码,这似乎是不必要的代码量。

如果有帮助,当我回显整个列表时,它会以字符串形式返回,就像这样。幻想友谊将军,我确实启用了全文搜索功能。

非常感谢您的帮助! :)

+0

你能不能详细的结果,你想要什么,我想尽量突出你 – Rahul11

+0

什么他们以前选择了哪些存储在数据库中。当我回复数据库时,我回应的是我上面提到的字符串“Fantasy Friendship General” – zazvorniki

回答

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> 

执行相同的所有

+0

它不是以数组形式从数据库返回,它以字符串的形式返回 – zazvorniki

+0

字符串如何? ? –

+0

只是普通文本,幻想友谊将军 – zazvorniki

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