【问题标题】:PHP get dropdownlist select option valuePHP获取下拉列表选择选项值
【发布时间】:2010-12-12 07:48:18
【问题描述】:

在我的下拉列表中,每个选项都有两个不同的值。我怎样才能检索两者?让我来说明一下我的意思。

<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 来做到这一点。

谢谢!

【问题讨论】:

    标签: php drop-down-menu


    【解决方案1】:

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

    可以做的是在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']);
       //...
    ?>
    

    【讨论】:

    • 谢谢!这效果很好。如此简单,我简直不敢相信。
    【解决方案2】:

    另一种奇怪的做法是:

    <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 将 [] 视为字符串是一个数组,因此您立即拥有一个关联数组。我同意,如果你首先把它放在那里,你应该能够在代码中再次查找它,而不是依赖它。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-02-25
          • 1970-01-01
          • 2021-01-02
          • 2015-02-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多