2011-09-26 149 views
0

我正试图从数据库中加载一个多重选择来编辑。PHP从MySQL中选择多个选择选项

我在一个内爆串存储原始数据(即, “4,6,8,9”)。

我想要做的是爆炸该字符串从数据库中,然后让加载编辑表单时选择的值。这些值是Float,然后是1-52。

这里是我到目前为止的代码,但它并没有选择值。

$ listing-> getWeeksAvail()仅仅是一个调用返回在这种情况下“4,6 WeeksAvail住宅,8,9)

<?php 
$weeks_available = explode(",", $listing->getWeeksAvail()); 
if (in_array("Float", $weeks_available)) { 
    echo " selected='selected'"; 
} 
?> 

>Float</option> 
<?php 
    for($float=0; $float<=52; $float++) { 
     echo "<option value=\"$float\""; 
     if (($listing instanceof listing) && $float == $listing->getWeeksAvail()) { 
     echo " selected='selected'"; 
    } 
     echo ">$float</option>\n"; 
} 

回答

0

的你的代码的第二部分应该是这样的:

<?php 
for ($float=0; $float<=52; $float++) { 
    echo "<option value=\"$float\""; 
    if (in_array($float, $weeks_available))) { 
    echo " selected='selected'"; 
    } 
    echo ">$float</option>\n"; 
} 
+0

谢谢,是的,现在工作。我有麻烦得到浮点值被选中,但我认为这是如何工作的。我会继续玩。再次感谢 – guyfromfl

+0

使用$ weeks_available = explode(“,”,$ listing-> getWeeksAvail()); 你注意到逗号后的空格吗?你已经使用','来破坏价值观。所以,在爆炸时,你需要使用相同的。 – Debiprasad

+0

ahhhh多数民众赞成它...感谢第二集眼睛 – guyfromfl

0

你可以尝试

<?php 
$week_available = explode(',', $listing->getWeeksAvail()); 

foreach (range(1,42) as $week) { 
    echo "<option value=\"$week\"" 
     .(in_array($week,$week_available)?"selected=\"selected\"":"") 
     .">$week</option>"; 
}