2014-09-23 168 views
0

中的选择框我正在创建一个相册库,并尝试从我的数据库表中拉出相册标题并将专辑标题添加到选择框中。将数据添加到表

我遇到的问题是它只抓取1个标题而没有其余。

例选择的是什么目前发生的事情箱:

  1. 请选择
  2. 专辑标题1

例选择的是什么,我需要对话框:

  1. 请选择
  2. 专辑标题1
  3. 相册标题2
  4. 相册标题3
  5. 专辑标题4

我需要选择框的值来包含相册的标题,因为我打算在另一个表中使用它。所以这个值不能是一个整数。

这里是我的代码:

 <select name="album"> 
<?php 
$db = DB::getInstance(); 
$album = "SELECT `album_id`,`album_date`,`album_title` FROM `albums` ORDER BY `album_date` DESC"; 
$query = $db->query($album); 
foreach($query->results() as $alb){ 
    ?> 
     <option selected="selected" value="">Please Choose</option> 
     <option value="<?php echo escape($alb->album_title); ?>"><?php echo escape($alb->album_title); ?></option> 
     </select> 
<?php } ?> 
+2

你是否意识到你创建选项**请选择**并在每个循环迭代结束选择的元素? – 2014-09-23 15:49:38

+1

你的'<选项选择=“选中”值=“”>请选择'应该在循环之外。 – nilobarp 2014-09-23 15:50:05

+0

AHH dangit,很好。我忽略了这一点。 – echo 2014-09-23 15:53:42

回答

2

您需要正确地创建循环(假设查询不会产生一些行):

<?php 
$db = DB::getInstance(); 
$album = "SELECT `album_id`,`album_date`,`album_title` FROM `albums` ORDER BY `album_date` DESC"; 
$query = $db->query($album); 
?> 
<select name="album"> 
    <option selected="selected" value="" disabled>Please Choose</option> 
    <!-- just put the loop where it needs to be --> 
    <?php foreach($query->results() as $alb): ?> 
     <option value="<?php echo escape($alb->album_title); ?>"><?php echo escape($alb->album_title); ?></option>  
    <?php endforeach; ?> 
</select> 
+0

感谢大家的帮助,现在所有人都能正常工作。 – echo 2014-09-23 16:00:20

+0

@echo确定男人很高兴它帮助 – Ghost 2014-09-23 16:00:41

+1

感谢您的帮助和这个小提示。 'value =“”disabled“从你身上学到了两件事。再次感谢。 – echo 2014-09-23 16:02:47

1

的请选择和是在foreach,所以他们被称为多次。

它改成这样:

?> 
<option selected="selected" value="">Please Choose</option> 
<?php 
foreach($query->results() as $alb){ 
    ?> 
     <option value="<?php echo escape($alb->album_title); ?>"><?php echo  escape($alb->album_title); ?></option> 
<?php } ?> 
</select>