【问题标题】:In an HTML form, I need to generate incrementally increasing values in the dropdown options of a select tag在 HTML 表单中,我需要在选择标记的下拉选项中生成递增的值
【发布时间】:2011-04-10 00:43:43
【问题描述】:

这是我需要为一堆下拉菜单编写的内容:

<select>
    <option value="23">23</option>
    <option value="23.5">23.5</option>
    <option value="24">24</option>
    <option value="24.5">24.5</option>
    [etc...]
</select>

每个选项都需要增加 0.5。

等等部分是我需要重复这个过程的地方,比如 40 多次。页面上还有多个选择,并且值以不同的数字开始和停止。

这些数字是静态的,一旦生成就不会改变。所以值和 HTML 代码只需要构建一次就可以了。该网站使用 PHP 提供支持。

我不想一个接一个地手动编码所有这些代码!我不确定最简单的方法是什么。正则表达式? JS?

【问题讨论】:

  • 您可以在服务器端或客户端进行。您没有提及您在服务器上使用的语言(如果有的话)。
  • 是的,刚刚注意到这一点,并在描述中添加了 PHP。

标签: html forms select drop-down-menu option


【解决方案1】:

如果您只是想让它有一次打印出数据,我会使用 Python 之类的语言。如果您愿意,您可以在运行时使用 JavaScript 动态生成它们,但请注意,这会减少禁用 JS 的用户的功能。然后在 Python 中:

for num in range(25, 50):
  print r'<option value="%d">%d</option>' % (num, num)
  print r'<option value="%d.5">%d.5</option' % (num, num)

这应该可以满足您的需求,并且具有适应性。

另外,无论如何,如果可能的话,你应该在页面中使用更强大的脚本语言(PHP、ASP、Ruby 等)来做这种事情,而不是创建一堆静态的硬编码文件.以后会很难维护。

【讨论】:

  • 非常酷!我忘了提到我们正在使用 PHP。有没有办法将其转换为 PHP?
  • Ben 的另一个答案是一个很好的解决方案,可以放在您的 PHP 文件中。这样,没有什么硬编码,以后很容易更新。 +1 那边。
【解决方案2】:
$total = 40;
$value = 23.00;

$HTML = '<select>';

for($i = 0; $i < $total; $i++)
{
    $HTML .= '<option value="'.$value.'">'.$value.'</option>';
    $value += 0.5;
}

$HTML .= '</select>';

【讨论】:

猜你喜欢
  • 2016-10-28
  • 2011-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多