【发布时间】:2026-02-13 07:25:03
【问题描述】:
我的表单中有多个提交按钮,其中包含多个动态生成的隐藏值。问题是我在查看生成的 HTML 源代码时可以看到正确的值,但是提交一个按钮,提交所有其他值,only on actually submitted button I have on array key-value pair more than others。我已添加索引以区分提交的按钮。
代码生成按钮在这里:
<form action="shipment.php" method="POST">
<?php
$index = 0;
// get rates details array
$rates = getRatesDetails($orderDetails);
//$orderDetails = array();
//$orderDetails['test_key'] = 'test_value';
foreach ($rates as $key => $RateDetails)
{
// end of PHP code
?>
<div class="col-md-4">
<button type="submit" class="shipping-option" name="orderDetails[<?php echo $index; ?>][shipping_option]" value="<?php echo $RateDetails['ServiceType']; ?>">
<input type="hidden" name="orderDetails[<?php echo $index; ?>][shipping_delivery_time]" value="<?php echo $RateDetails['DeliveryTimestamp']; ?>">
<input type="hidden" name="orderDetails[<?php echo $index; ?>][shipping_total_amount]" value="<?php echo $RateDetails['Amount']; ?>">
<input type="hidden" name="orderDetails[<?php echo $index; ?>][shipping_total_currency]" value="<?php echo $RateDetails['Currency']; ?>">
<ul>
<li>Service type: <span><?php echo $RateDetails['ServiceType']; ?></span></li>
<li>Estimated delivery time: <span><?php echo $RateDetails['DeliveryTimestamp']; ?></span></li>
<li>Total charge: <span><?php echo $RateDetails['Amount']; ?><?php echo $RateDetails['Currency']; ?></span></li>
</ul>
</button>
</div>
<?php
$index++;
}
?>
</form>
并且转储的 POST 数据在这里:
Array
(
[0] => Array
(
[shipping_delivery_time] => 2015-11-24T08:00:00
[shipping_total_amount] => 178.49
[shipping_total_currency] => USD
)
[1] => Array
(
[shipping_option] => INTERNATIONAL_PRIORITY // actially selected option
[shipping_delivery_time] => 2015-11-24T10:30:00
[shipping_total_amount] => 128.91
[shipping_total_currency] => USD
)
[2] => Array
(
[shipping_delivery_time] => 2015-11-27T16:30:00
[shipping_total_amount] => 115.77
[shipping_total_currency] => USD
)
)
其实我只需要 $_POST[1] 数组,如何实现呢?如果我删除索引,我只会发布最后一个数组值。
【问题讨论】:
标签: php html arrays forms post