繁体   English   中英

PHP多个隐藏值选择选项

[英]PHP Multiple Hidden Values Select Option

是否可以分配多个值来选择选项下拉列表? 选择它们时,我需要从每个下拉列表中检索多条数据,而我只能获得“名称”和“ 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”。 在Google上,我对此知之甚少,甚至不知道这是否可行。 如果我要的是不可能,请告诉我! 非常感谢,尼克

嘿,您不能有多个这样的值,因为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)

如果您序列化数据,则更好,然后在下一个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")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM