如何从 HTML/PHP 中的单个 <select> 变量中获取多个值?

Posted

技术标签:

【中文标题】如何从 HTML/PHP 中的单个 <select> 变量中获取多个值?【英文标题】:How to get multiple values from a single <select> variable in HTML/PHP? 【发布时间】:2012-09-29 06:03:35 【问题描述】:

好的,所以我有一个 html 表单中的标准 select 选项,但我想要做的是从单个 将多个值发送到接收 PHP 脚本选项值

比如这样的(我知道不正确):

<select name="size" id="size" type="text">
<option value="3" value="5" >3 Inches by 5 Inches</option>
<option value="6" value="4" >6 Inches by 4 Inches</option>
<option value="8" value="10" >8 Inches by 10 Inches</option>
</select>

然后在接收 php 脚本时,它可能会得到某种“size[1]、size[2]”之类的东西。如果有人知道如何做到这一点,任何帮助都会很棒。我已经进行了广泛的搜索,但我还没有看到像这样的东西。再次感谢!

【问题讨论】:

&lt;select name="size" id="size" type="text" multiple="multiple"&gt; 为什么不直接使用value="3x5"value="6x4"等? 也许复选框会更好? 【参考方案1】:

可以在value中传递两个值

<select name="size" id="size" type="text">
    ....
    <option value="6x4" >6 Inches by 4 Inches</option>
</select>

在后端你可以拆分它来获取值

list($x,$y) = explode("x",$_GET['size']);  // or POST

echo $x; // 6
echo $y; // 4

【讨论】:

+1 这是理智的方式。或者,您可以使用数组字段名称(例如:sizes[])并在选择其中一个时使用 JS 为其分配多个值。但这可能不值得麻烦。 @NullUserException 你是对的,如果使用 javascript 这也是一个很好的解决方案 太棒了,谢谢你的提示。无论如何,这正是我想要的!非常感谢伊布! @Aaron 我很高兴我能提供帮助,但一个建议是确保在使用 POST 或 GET 之前检查参数的值。【参考方案2】:

在值属性中使用分隔符怎么样?

<option value="3_5" >3 Inches by 5 Inches</option>

现在,当您在 PHP 中检查这些值时,您可以简单地在值上使用 explode() 来提取它们。

$sizes = explode('_',$_POST['size']);

您现在将拥有一个包含分隔值的数组 -

array (
  0 => '3',
  1 => '5',
)  

在此示例中,我选择了下划线 _ 作为分隔符,但您可以使用任何您想要的字符。

参考-

explode()

【讨论】:

非常感谢,这正是我想要的!我将 Ibu 的答案标记为正确只是因为他有带有变量的输出列表,这是我更喜欢的方式。非常感谢您的宝贵时间。 @aar - 不用担心 :) 乐于助人!根据我的经验,使用list 命令会让您更容易出错,但在这种情况下,它是您的项目,而不是我的项目:)

以上是关于如何从 HTML/PHP 中的单个 <select> 变量中获取多个值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在单个 HTML / PHP 文件中嵌入图像?

如何从html中的表中的一行返回单个数据?

如何从另一个类中的 ArrayList <List> 获取数据?

@ <Prolog中的符号

如何将复选框链接到 html/PHP 中的文本字段

如何从iphone中的png文件中检索单个图像