如何在选项字段中发布两个值?

gel*_*iis 3 html php post

我想在一个下拉选项中发布两个值,我不确定接近它的最佳方法.

下拉列表从外部服务中提取数据.这些数据是'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)