我想在一个下拉选项中发布两个值,我不确定接近它的最佳方法.
下拉列表从外部服务中提取数据.这些数据是'id'和'name'.
当我在下拉列表中选择一个选项然后按提交时,我希望发布'id'和'name'.
我的代码看起来像这样:
<select name="data">
<option>Select a name</option>
<?php foreach($names as $name): ?>
<option value="<?php echo $name['id']);?>">
<?php echo $name['name']);?>
</option>
<?php endforeach; ?>
</select>
Run Code Online (Sandbox Code Playgroud)
我已经尝试放入一个隐藏的输入字段,但那不会渲染下拉(而只是创建一个列表).
我在其他地方使用id和name,所以我不想只发布id,然后必须再次获取名称,因此我想同时发布它们.
有什么建议?
Mic*_*ski 11
您不能发布两个值,除非它们都出现在value属性中.您可以将它们放在一起,用逗号或连字符分隔,explode()并在PHP中分开:
// Place both values into the value attribute, separated by "-"
<option value="<?php echo $name['id'] . "-" . $name['name']);?>">
<?php echo $name['name']);?>
</option>
Run Code Online (Sandbox Code Playgroud)
用PHP接收它们
// split the contents of $_POST['data'] on a hyphen, returning at most two items
list($data_id, $data_name) = explode("-", $_POST['data'], 2);
echo "id: $data_id, name: $data_name";
Run Code Online (Sandbox Code Playgroud)