【发布时间】:2018-11-11 12:56:24
【问题描述】:
我需要使用 php FOR 循环显示带有十进制数字的选择框。见以下代码:
<select name="animationDelayTime">
<option value="0.1">0.1s</option>
<option value="0.2">0.2s</option>
<option value="0.3">0.3s</option>
<option value="0.4">0.4s</option>
<option value="0.5">0.5s</option>
<option value="0.6">0.6s</option>
<option value="0.7">0.7s</option>
<option value="0.8">0.8s</option>
<option value="0.9">0.9s</option>
<option value="1.0">1.0s</option>
<option value="1.1">1.1s</option>
<option value="1.2">1.2s</option>
<option value="1.3">1.3s</option>
</select>
这个循环会一直持续到第 10 位。
是否可以在 php 中循环十进制数?
如果可能的话,任何人都可以检查以下不起作用的代码。我 从数据库中获取数据,我使用条件语句 选择并显示在选择框中选择的现有记录:
<select class="form-control" name="delayTime" title="Choose animation delay time..." data-toggle="tooltip" required> <?php for ($x = 0.1; $x <= 10.1; $x=$x+0.1) { if($x == $updateEntry->delayTime){ echo '<option value="' .$x.'" selected>'.$x.'s</option>'; } echo '<option value="' .$x.'">'.$x.'s</option>'.PHP_EOL; } ?> </select>请看下面的屏幕截图。应该在选择框中选择值7.1,但它没有选择,只有开头的两个或三个数字被选中,不知道为什么?请帮我整理一下。
终于找到了在foreach循环中使用range来解决这个问题的方法。见下文:
<?php
foreach (range(0.1, 10, 0.1) as $val) {
$selected = ($val == $updateEntry->delayTime) ? "selected": "";
echo '<option value="' . $val . '" '.$selected.'>' . $val . 's</option>';
}
?>
【问题讨论】:
-
对于这样的问题,您应该分享您尝试过的内容以及哪些内容不起作用