选项值不在下拉菜单中显示?

时间:2016-01-23 11:43:49

标签: php html mysql

我在网页上使用日期范围来聚合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>

最奇怪的部分是这是最长时间的工作,两个菜单中的日期突然消失了。有什么想法吗?

5 个答案:

答案 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;