是否可以分配多个值来选择选项下拉列表?选择它们时,我需要从每个下拉列表中检索多条数据,并且我只能获得"名称"和"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 脚本时,当用户选择"GH20"时,我可以同时使用数据"5"和"abc"。我在谷歌上没有看到太多关于这个的信息,甚至不知道这是否可能。如果我要求不可能的事情,请告诉我!非常感谢,尼克
嘿,
你不能有多个这样的值,因为 post 或 get 将只返回第一个值,在本例中为 5
<option value="5","abc">GH20</option>
但是你可以让你的值看起来像这样
<option value="5,abc">GH20</option>
然后在 PHP 脚本中,您可以使用分解函数分隔值
explode(',', $_POST['model'])
这将返回您可以使用的数组 array( 0=> 5, 1=>abc)
最好序列化
数据,然后在下一个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")