我在select标签中有数据,该标签已发回给我的脚本。我在POST数组中有密钥但需要相应的值。如何在不查询数据库的情况下获得此信息?
<option value="1">My Value</option>
答案 0 :(得分:2)
你不是已经在服务器端了吗?在数据库或任何存储?当然可以。
所以,从那里得到它。
答案 1 :(得分:1)
发布表单时,接收程序将收到每个字段的value
属性的内容。因此,在您引用的示例中,您将收到1
。
如果您确实希望收到My Value
(或者至少可以随时提供),那么您可以选择多种方式:
将其包含在value
属性中,以便发布。例如<option value='1:My Value'>
。然后,您可以从接收程序中的文本值中拆分数值。这样做效果会很好,但是这样做的缺点是你现在正在为表单帖子增加额外的开销(不过可以说这不是一个巨大的数额)。
将options数组存储在会话中。然后可以随时访问整个阵列,而无需从DB重新加载。这样做的不利之处在于,您最终会在不需要存在大量任意数据的情况下使会话变得混乱。
从数据库中获取并停止担心;如果您正在使用一个像样的数据库,那么当您填充下拉框时,它会从您之前的页面加载中缓存该值,因此这不是一个很大的开销。实际上,除非你有一个非常大的性能问题,否则我建议你这样做。
答案 2 :(得分:0)
我建议你以相反的方式解决这个问题。那就是在后端创建列表并将其调用到它的HTML副本。这样你就可以拥有值和相应的键。
或者,您可以,如果您的列表相当小(否则会有点乱),只需检查值是什么,并手动分配逻辑中的相应键。
<小时/> 修改强>
我注意到你提到你已经拥有了两个值。什么阻止你将钥匙与其价值相匹配?
答案 3 :(得分:0)
一种方法,首先是一个数组,第二个是一个对象:
<select name="">
<option value="[0,1,2,3]">Option one</option>
<option value="{foo:'bar',one:'two'}">Option two</option>
</select>
答案 4 :(得分:-1)
你不能 - 如果你不想避免联系数据库,可以选择:
<option value="1|My Value">My Value</option>
在你的接收剧本中:
$values = explode("|", $_POST["yourselect"]);
var_dump($values);