2011-02-14 64 views
0

我有一个选择标记中的数据发回到我的脚本。我在POST数组中有键,但需要相应的值。如何在不查询数据库的情况下获取它?如何获得选择的值

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

什么你需要价值? – 2011-02-14 13:30:08

回答

2

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

+0

我在数据库中有它,但当用户提交表单时,我只有钥匙。你说我需要第二次查询数据库的价值? – Jim 2011-02-14 13:31:44

+0

当然。无论如何,你会这样做,不是吗? – 2011-02-14 13:35:06

+0

@Jim:是的,DB可能已经缓存了这个记录,所以这不会是一个很大的开销。 – Spudley 2011-02-14 13:38:13

-1

你不能 - 或者,如果你wan't避免接触数据库,会是这样的:

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

而在你recieving脚本:

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

我会建议你以相反的方式去解决这个问题。这是在后端创建列表并将其调用到其HTML对应项。这样你就可以拥有价值和相应的关键。另外,如果你的列表很小(否则会有点杂乱),你可以简单地检查一下数值是什么,并手动在你的逻辑中分配相应的键值。


编辑:

我注意到你提到你已经有两个值。什么阻止你将密钥与其值相匹配?

1

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

如果你真的想收到My Value(或至少把它随手将手),那么就打开了许多选项,您:

  1. 它包括在value属性,因此它被贴。例如<option value='1:My Value'>。然后,您可以从接收程序中的文本值中拆分数字值。这将工作得很好,尽管这样做的缺点是你现在向表单文章增加了额外的开销(尽管不是很多)。

  2. 将选项数组存储在会话中。然后整个数组可以在任何时候访问,而无需从数据库重新加载。这样做的缺点是,你最终会因为大量的任意数据而无法到达会话而使会话混乱。

  3. 刚刚从数据库中获取并停止担心;如果您使用的是体面的数据库,那么当您填充投递箱时,它将缓存来自上一页加载的值,因此它不是一个很大的开销。实际上,除非你有一个非常大的性能问题,否则我会建议这是一条路。要做到这一点