【问题标题】:How to get the value and id from a drop down in php?如何从 php 中的下拉列表中获取值和 id?
【发布时间】:2012-02-09 14:50:46
【问题描述】:

我已经创建了一个带有下拉列表的 html 表单。

此下拉列表是从数据库中填充的。

<select name="classes">
<?php
foreach() {
?>
<option value="<?php echo $id ?>"><?php echo $name ?></option>
<?php
}
?>
</select>

现在我想同时获取 $id 和 $name 。我将如何做到这一点?

我试过了

echo $_POST['classes'];

但它只显示所选项目的 $id。我想要 $id 和 $name 两者。

【问题讨论】:

  • 仅发布所选选项的 ID。关键是 ID 作为名称的别名,因此知道 ID 应该足以让您知道名称。
  • 我两者都需要,你必须使用 JavaScript 来更改发布请求。
  • 但我两者都需要。如何同时获得 id 和 name? php可以吗?

标签: php html


【解决方案1】:

你不能。一种可能性是将两个信息都放在value 属性中,然后用php(通过使用分隔符)再次将它们分开:

<option value="<?php echo $id.'|'.$name; ?>"><?php echo $name ?></option>

在 PHP 中:

$datas = explode('|',$_POST['classes']);
$id = $datas[0];
$name = $datas[1];

但这不是系统的本意。通常 $name 只会用作用户的“友好”信息,因为值有时可能只是一个 INT 并且用户不会理解该 int 指的是什么,所以我们给他一个单词描述以便选择一个选项:但是您只关心该值确实,您可以随时使用它来再次获取随之而来的描述(例如,通过搜索数据库)

【讨论】:

    【解决方案2】:

    据我所知,当您提交该表单时,只会结转该值。如果没有值,则内部 HTML 成为值。

    我要做的是:

    <select name="classes">
    <?php  
    foreach($classes as $id => $name) //i'm guessing here, is this what you meant? 
     {  ?>  
    <option value="<?php echo $id.'|'.$name ?>"><?php echo $name ?></option>
    <?php  }  ?>  
    </select>
    

    如果您不熟悉,句点是连接运算符。把它想象成一根绳子的胶水。所以我将 $id 粘贴到“管道”的左侧,然后将 $name 粘贴到它的末尾。 然后在您的处理程序中,使用 split 或 explode 分隔管道上的两个值。

    实际上,我会做一些不同的事情,回声更多,进出 php/html 更少,但我尽量让你的代码保持完整。

    【讨论】:

    • 我太慢了。其他人发布了与我几乎相同的答案。 :-)
    【解决方案3】:

    将名称附加到Id并将其作为值传递,并从另一端分解名称

    【讨论】:

      【解决方案4】:

      在存储选项值时,您想要的是并命名两者, 像这样放

      <option value="<?php echo $id."_".$name;?>"><?php echo $name?></option>
      

      在发布数据时,您将获得 is 和 name 的值

      【讨论】:

        【解决方案5】:

        发送表单意味着仅发送选择字段的“值”(仅将选项中的“名称”视为标签)。当您在处理表单提交时拥有“id”时,您可以简单地从数据库中获取“name”。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多