本文解决使用 foreach 动态生成 select 下拉菜单时,因错误设置 option 的 value 属性导致表单提交后无法获取所选币种代号(如 "btc")而只能得到最后遍历的汇率值的问题。
在构建加密货币转换器时,一个常见但容易被忽视的错误是:将
✅ 正确做法是:让 value 携带可唯一标识币种的键名(如 "ADA"),而显示文本保持清晰易读的名称。修改你的 select 生成代码如下:
注意:
提交后,在处理逻辑中即可准确获取所选币种,并动态查出对应汇率:
if (isset($_POST['convert_crypto'])) {
$amount = (float) $_POST['amount'];
$from = $_POST['from']; // 例如 "BTC"
$to = $_POST['to']; // 例如 "USD"
// ✅ 安全校验:确保用户选择的币种确实存在于 API 数据中
if (!isset($arr_usd["rates"][$from])) {
echo "错误:不支持的币种 '$from'";
exit;
}
$rate = $arr_usd["rates"][$from];
if ($to === "USD") {
$result = round($amount * $rate, 2);
echo "$amount $from = $result US Dollar";
}
// 可继续扩展其他目标币种(如 EUR、GBP 等)
}? 关键总结:
遵循以上实践,你的加密货币转换器将真正实现“所见即所得”的选择逻辑。