2016-01-23 96 views
1

我在网页上使用日期范围来聚合MySQL数据并根据选定的时间范围显示它。由于某些原因,下拉菜单中每个选项的值都不显示。下面是我使用的PHP:选项值不显示在下拉菜单中?

<select name="date1" title="<?=$date1 ?>"> 
<?php foreach($availableDates as $date) { ?> 
<option value="<?=$date ?>"<?php if($date == $date1) { ?> selected="selected"<?php } ?><?=$date ?></option> 
<?php } ?> 
</select> 

而这里的HTML输出:

<option value="2015-01-03" selected="selected" 2015-01-03<="" option=""></option> 

最怪异的部分是这是工作时间最长,突然在这两个菜单的日期消失。任何想法为什么?

+1

你看到''选项'关闭'>'吗?我不。 –

+0

关闭选项开始标记。 – ameenulla0007

+0

如果你想摆脱可怕的速记方法,这将更加明显。以一种体面的方式格式化你的代码,你会更快地发现这样的错误。 – RST

回答

1

这件事发生监守你缺少的标签的结束>

修改后的代码:

<select name="date1" title="<?=$date1 ?>"> 
<?php foreach($availableDates as $date) { ?> 
<option value="<?=$date ?>"<?php if($date == $date1) { ?> selected="selected"<?php } ?>> 
<?=$date ?> 
</option> 
<?php } ?> 
</select> 
1

你的PHP代码段缺少一个右>

<select name="date1" title="<?=$date1 ?>"> 
    <?php foreach($availableDates as $date) { ?> 
    <option 
    value="<?=$date ?>" 
    <?php if($date == $date1) { ?> selected="selected"<?php } ?> 
    > 
    <?=$date ?> 
    </option> 
    <?php } ?> 
</select> 
1

试试这个办法也:

<select name="per1" id="per1"> 
    <option selected="selected">Choose one</option> 
    <?php 
    foreach($names as $name) { ?> 
     <option value="<?= $name['name'] ?>"><?= $name['name'] ?></option> 
    <?php 
    } ?> 
</select> 

现在你可以在这里把你的代码。

+0

那么OP如何获得选择的选项? – devpro

+0

http://www.html-form-guide.com/php-form/php-form-select.html –

+0

没有我的朋友我在说如果date == date1比这个特定的选项将被选中...你错过了它。 :) – devpro

1

添加>标签仔细选择后的属性
2.删除缺兵少将<?= ?>标签,它是不需要的,而你也使用<?php ?>

<select name="date1" title="<?php print $date1; ?>"> 
    <?php foreach($availableDates as $date) { 
     ?><option value="<?php print $date; ?>"<?php if($date == $date1) { ?> selected="selected"<?php } ?>> 
      <?php print $date; ?> 
     </option> 
    <?php } ?> 
</select> 
0

我的建议是不容易出错的代码。

$selHTML = '<select name="date1" title="'.$date1.'">'; 
foreach($availableDates as $date) { 
    $sel = ($date == $date1)?" selected":""; 
    $selHTML .= '<option value="'.$date.'"'.$sel.'>'.$date.'</option>'; 
} 
$selHTML .= '</select>'; 
echo $selHTML;