PHP获取下拉列表选择选项值

时间:2010-12-12 07:48:19

标签: php drop-down-menu

在我的下拉列表中,每个选项都有两个不同的值。我怎样才能找回它们?让我说明一下我的意思。

<select name="my_ddl">
  <option value="<?php $value_Id ?>"><?php $value_text ?></option>
  <option value="<?php $value_Id ?>"><?php $value_text ?></option>
</select>

发布表单时,我希望能够同时获取所选选项的$ value_id和$ value_text。我怎么能这样做?

$ _ POST ['my_ddl']只获得一个值而不是两个值。

在asp.net中,我可以通过引用my_ddl.Value和my_ddl.Text来完成此任务。

谢谢!

4 个答案:

答案 0 :(得分:5)

严格来说,这是不可能的。

可以做什么使用value属性中的分隔符:

<select name="my_ddl">
  <option value="<?php echo $value_Id ?>|<?php echo $value_text ?>"><?php echo $value_text ?>   
  </option>
</select>

和...

<?php    
   list($id, $text) = explode('|', $_POST['my_ddl']);
   //...
?>

答案 1 :(得分:3)

另一种奇怪的做法是:

<select name="my_ddl">
  <option value="<?php echo $value_Id ?>[<?php echo $value_text ?>]">
    <?php echo $value_text ?>   
  </option>
</select>

然后当你处理它时,你可以做到这一点,甚至可能更简单:

foreach ($_POST['my_dd1'] as $value_Id => $value_text) {
  $value_Id = $value_Id;
  $value_text = $value_text;
}

因为php将[]视为字符串是一个数组,所以你立即拥有一个关联数组。我同意,如果你把它放在首位,你应该能够在代码中再次查找它而不是依赖它。

答案 2 :(得分:0)

如果您使用PHP填充<option>的文本,那么您可以在服务器上查看该值。也许您只需要使用$ value_id来查找数据库表中的文本?

如果没有,您可以在表单上包含一个隐藏字段,并使用JavaScript在每次选择新值时使用文本更新该隐藏字段。

答案 3 :(得分:0)

您无法从POST数据中获取value_text。一种解决方案是在通过JavaScript选择选项后填充隐藏字段。