我在选择框中有几个值。提交表单时是否可以同时获取<option>标签之间的值和文本?
<option value="413">Highland </option>
<option value="414">Inverclyde </option>
或者,我想我必须将名称存储在表或数组中以进行检索,但如果我可以在提交表单时将两者都插入表中会容易得多。
我在选择框中有几个值。提交表单时是否可以同时获取<option>标签之间的值和文本?
<option value="413">Highland </option>
<option value="414">Inverclyde </option>
或者,我想我必须将名称存储在表或数组中以进行检索,但如果我可以在提交表单时将两者都插入表中会容易得多。
正如 Stephen Moretti 所指出的,至少有两种方法可以从值中获取文本。
您还可以使用包含正确值和选择值文本的列表。所以,而不是:
<option value="23">Twenty Three</option>
利用
<option value="23,TwentyThree">Twenty Three</option>
并在后端使用 list*() 函数。
最后,您可以使用 JavaScript 将所选选项的文本存储在隐藏字段(或类似字段)中。在我看来,这是最没有吸引力的选择。首先,它会比其他选项工作更多,其次,如果在客户端关闭 JS,它将失败。
根据数据的大小/类型,我可能会重写选项值,如我所描述的,或者关闭查找表,如 Stephen 所描述的。
如果您的选择中只有几个值/文本对,则只需存储该值。如果您需要在 select 以外的其他地方输出文本,只需编写 if/elseif/else 或 case 块来显示文本。
如果您有很多值/文本对,那么最好在数据库中创建一个包含这些的查找表。您可以使用它来生成您的选择并在以后从存储的值中输出文本。
如何判断是否有太多的值/文本对?如果编写 case 块来显示它们会导致大量乏味的代码。;)
另一种选择是将值/文本对的结构存储在会话范围中,然后在表单操作页面上,您可以使用该值轻松查找文本。
这样做的美妙之处在于它完全是服务器端的,并且不包括额外的数据库访问。
如果您不想保留它,请从会话范围中删除该结构。