PHP多个隐藏值选择选项

时间:2014-11-22 18:19:23

标签: php html select options

是否可以为选择选项下拉列表分配多个值?我需要从每个下拉列表中检索多个数据,当它们被选中时,我只能获得" name"和一个" id"。显示该名称供用户选择,但它是传递给要处理的ID。这是我的代码:

<?php
$att_1 = $att_1;
mysql_connect("xx.xx.xx.xx","xxxxxx","xxxxxx");
mysql_select_db("dezanjow_cf");
$sql=mysql_query("select id, name from model");
if(mysql_num_rows($sql)){
$select= '<select name="model">';
$select.='<option value="default">Select Model</option>';
while($rs=mysql_fetch_array($sql)){
     $select.='<option value="'.$rs['id'].'">'.$rs['name'].'</option>';
  }
}
$select.='</select>';
echo $select;
?>

这会生成如下所示的html:

<select name="model">
<option value="default">Select Model</option>
<option value="5">GH20</option>
<option value="6">GH21</option>
<option value="7">GH22</option>
</select>

我希望像这样显示它们(例如):

<select name="model">
<option value="default">Select Model</option>
<option value="5","abc">GH20</option>
<option value="6","def">GH21</option>
<option value="7","ghi">GH22</option>
</select>

因此,当数据传递到下一个PHP脚本时,我可以同时使用数据&#34; 5&#34;和&#34; abc&#34;当用户选择&#34; GH20&#34;。我没有在谷歌上看到过这方面的内容,也不知道这是否可行。如果我要求不可能,请告诉我!非常感谢,尼克

2 个答案:

答案 0 :(得分:5)

嘿,你不能有这样的多个值因为post或get只会返回第一个值,在这种情况下是5

<option value="5","abc">GH20</option>

但你可以让你的价值看起来像这样

<option value="5,abc">GH20</option>

然后在php脚本中,您可以使用explode函数

分隔值

explode(',', $_POST['model']) 这将返回您可以使用的数组 array( 0=> 5, 1=>abc)

答案 1 :(得分:0)

如果您序列化数据然后在下一个PHP脚本中反序列化它会更好。

$data=array($rs['id'], "abc");   //data to be stored
$serialized_data=serialize($data);    //serialize data

$select.='<option value="'.$serialized_data.'">'.$rs['name'].'</option>';

重要

//unserialize information
$unserialized_data=unserialize($serialized_data);

这将输出相同的数组array('SOMEID', "abc")