我在网页上使用日期范围来聚合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>
最奇怪的部分是这是最长时间的工作,两个菜单中的日期突然消失了。有什么想法吗?
答案 0 :(得分:1)
这是因为您错过了 标记的结尾&gt;
修改后的代码:
<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 :(得分: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>
答案 2 :(得分: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>
现在你可以把你的代码放在这里了。
答案 3 :(得分:1)
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>
答案 4 :(得分: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;