如何获取选择的值

时间:2011-02-14 13:27:27

标签: php

我在select标签中有数据,该标签已发回给我的脚本。我在POST数组中有密钥但需要相应的值。如何在不查询数据库的情况下获得此信息?

<option value="1">My Value</option>

5 个答案:

答案 0 :(得分:2)

你不是已经在服务器端了吗?在数据库或任何存储?当然可以。
所以,从那里得到它。

答案 1 :(得分:1)

发布表单时,接收程序将收到每个字段的value属性的内容。因此,在您引用的示例中,您将收到1

如果您确实希望收到My Value(或者至少可以随时提供),那么您可以选择多种方式:

  1. 将其包含在value属性中,以便发布。例如<option value='1:My Value'>。然后,您可以从接收程序中的文本值中拆分数值。这样做效果会很好,但是这样做的缺点是你现在正在为表单帖子增加额外的开销(不过可以说这不是一个巨大的数额)。

  2. 将options数组存储在会话中。然后可以随时访问整个阵列,而无需从DB重新加载。这样做的不利之处在于,您最终会在不需要存在大量任意数据的情况下使会话变得混乱。

  3. 从数据库中获取并停止担心;如果您正在使用一个像样的数据库,那么当您填充下拉框时,它会从您之前的页面加载中缓存该值,因此这不是一个很大的开销。实际上,除非你有一个非常大的性能问题,否则我建议你这样做。

答案 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>

Can an Option in a Select tag carry multiple values?

答案 4 :(得分:-1)

你不能 - 如果你不想避免联系数据库,可以选择:

<option value="1|My Value">My Value</option>

在你的接收剧本中:

$values = explode("|",  $_POST["yourselect"]);
var_dump($values);