如何从 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]”之类的东西。如果有人知道如何做到这一点,任何帮助都会很棒。我已经进行了广泛的搜索,但我还没有看到像这样的东西。再次感谢!
【问题讨论】:
<select name="size" id="size" type="text" multiple="multiple">
为什么不直接使用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> 变量中获取多个值?的主要内容,如果未能解决你的问题,请参考以下文章