是否可以为选择选项下拉列表分配多个值?我需要从每个下拉列表中检索多个数据,当它们被选中时,我只能获得" 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;。我没有在谷歌上看到过这方面的内容,也不知道这是否可行。如果我要求不可能,请告诉我!非常感谢,尼克
答案 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")