Html 在选择控件上使用id或索引?

Html 在选择控件上使用id或索引?,html,select,drop-down-menu,server-side,Html,Select,Drop Down Menu,Server Side,你好, 假设我创建了一个网页,用户可以在首页上设置不同的过滤器。一些过滤器是下拉列表或选择列表(这些控件包含保存值和文本的选项emelents) 英里 100英里 200英里 300英里 这也可能涉及国家、城市等 文本仅用于显示,但值将映射到服务器端的某种对象 问题是该值应该是choosen对象的Id,还是只应该是选定的索引 如果我们使用Id,这可能意味着我们在一段时间后会得到大量的数字。如果mata数据变化很大,例如,一个选项的Id可能是32000。最重要的是,知道用户选择了什么样的价值

你好,

假设我创建了一个网页,用户可以在首页上设置不同的过滤器。一些过滤器是下拉列表或选择列表(这些控件包含保存值和文本的选项emelents)


英里
100英里
200英里
300英里
这也可能涉及国家、城市等

文本仅用于显示,但值将映射到服务器端的某种对象

问题是该值应该是choosen对象的Id,还是只应该是选定的索引

  • 如果我们使用Id,这可能意味着我们在一段时间后会得到大量的数字。如果mata数据变化很大,例如,一个选项的Id可能是32000。最重要的是,知道用户选择了什么样的价值永远不会成为问题

  • 如果我们取而代之的是服务器上的选项列表,并按照给定的属性对其排序,那么在此之后,我们将生成一个从0开始的值/id。这将使HTML看起来更好,我们永远不必考虑元数据中会产生高值的太多变化。问题是,当将它映射到服务器端的对象时,我们必须再次对列表排序(maby cached以避免这种情况),然后检查匹配。这里的另一个问题是,如果元数据被更改,那么即使用户选择了索引3,即id为2304的对象,他也会得到id为2302的对象


我看了好几页,但是当谈到里程和年份之类的过滤器时,它看起来像是从0开始的计数索引(我的第二个选择):

你有一个值和一个选择的索引。不需要ID,它隐含在索引中


服务器上发生的是数据库问题,与UI无关。

您有一个值和一个选择的索引。不需要ID,它隐含在索引中


服务器上发生的事情是数据库问题,与UI无关。

通常,您希望值是数据库中元素的键,这样您就知道它不会更改。值是否可以大并不重要,因为它实际上是一个字符串(因此value=“388283”不大于value=“orange”)

通常您希望该值是数据库中元素的键,这样您就知道它不会更改。值是否可以大并不重要,因为它实际上是一个字符串(因此value=“388283”不大于value=“orange”)

如果我们使用Id,这可能意味着我们在一段时间后会得到大量的数字。如果mata数据变化很大,例如,一个选项的Id可能是32000

大多数人不认为这是个问题。

[value==index]将使HTML看起来更好

我认为这并不重要。没有多少人会关注你的源代码,担心你的
值的长度

这里的另一个问题是,如果元数据被更改,那么即使用户选择了索引3,即id为2304的对象,他也会得到id为2302的对象

的确如此。这是value==index的真正问题。我肯定会避免使用value==唯一标识符

当它涉及到像英里和年这样的过滤器时,它看起来像是从0开始计算索引

从这一点,我们真的无法分辨它是索引还是标识符。它可能是表示“100英里”的DB对象的id,也可能是预定义的枚举类型,其中0==100英里。在这两种情况下,您都可以在不破坏任何内容的情况下重新订购选项

如果我们使用Id,这可能意味着我们在一段时间后会得到大量的数字。如果mata数据变化很大,例如,一个选项的Id可能是32000

大多数人不认为这是个问题。

[value==index]将使HTML看起来更好

我认为这并不重要。没有多少人会关注你的源代码,担心你的
值的长度

这里的另一个问题是,如果元数据被更改,那么即使用户选择了索引3,即id为2304的对象,他也会得到id为2302的对象

的确如此。这是value==index的真正问题。我肯定会避免使用value==唯一标识符

当它涉及到像英里和年这样的过滤器时,它看起来像是从0开始计算索引


从这一点,我们真的无法分辨它是索引还是标识符。它可能是表示“100英里”的DB对象的id,也可能是预定义的枚举类型,其中0==100英里。在任何一种情况下,您都可以在不破坏任何内容的情况下重新排序选项。

好的,但是该值应该是实际值还是应该是一个计算值,如我的示例中所示:0,1,2?一个真正的价值将被使用的html也将更大,这是一个问题吗?例如32500、32600、32700而不是0,1,2使用实际值。为什么要皈依。值的大小并不重要。好的,但是值应该是真实值还是应该是一个计算值,如我的示例中所示:0,1,2?一个真正的价值将被使用的html也将更大,这是一个问题吗?例如32500、32600、32700而不是0,1,2使用实际值。为什么要皈依。值的大小并不重要。
<select>
<option value="">Miles</option>
<option value="0">100 miles</option>
<option value="1">200 miles</option>
<option value="2">300 miles</option>
</select>