<?php
$ctr = 0;
foreach($rows as $row){
?>
<input type="hidden" name="client<?php echo $ctr; ?>['client_id']" value="<?php echo $row['client_id']; ?>">
<input type="hidden" name="client<?php echo $ctr; ?>['transaction_id']" value="<?php echo $row['id']; ?>">
<input style="max-width: 100px;min-width:100px;" class="form-control right" type="text" name="client<?php echo $ctr;?>['amount']" value="" />
<?php
}
?>
更新:我已经包含了$ _POST来自的表格。
这是print_r ($_POST);
的输出:
Array
(
[client0] => Array
(
['client_id'] => 1
['transaction_id'] => 1
['amount'] => 1000
['mode'] => cash
)
[client1] => Array
(
['client_id'] => 2
['transaction_id'] => 5
['amount'] => 600
['mode'] => cash
)
[client2] => Array
(
['client_id'] => 3
['transaction_id'] => 6
['amount'] => 200
['mode'] => cash
)
[save] =>
)
当我尝试写这篇文章时:echo $_POST['client0']['amount'];
。
我期待输出1000
但它给我一个错误:Notice: Undefined index: amount
。
所以你们可以告诉我我的代码有什么问题.TIA
答案 0 :(得分:1)
仔细比较print_r
输出。一个键为client0
,而下一个键为'amount'
。那是因为您的密钥实际上是'amount'
,而不是amount
。因为您在HTML中包含了不必要的引号。修复HTML,使输入名称变为:
name="client0[amount]"
(或者将密钥称为$_POST['client0']["'amount'"]
。)
当你在这里时,你可能想要将你的字段重命名为:
name="clients[0][amount]"
因为那时你可以使用:
简单地遍历数据foreach ($_POST['clients'] as $client) {
echo $client['id'], $client['amount'], ..;
}
更具可读性和理智。
答案 1 :(得分:0)
你应该使用
echo $_POST['client0']['amount'];
答案 2 :(得分:0)
您正在使用错误的变量amount_id只是检查出变量为“amount”的数组,所以更改变量名称如下文
echo $_POST['client0']['amount'];
我希望这会对你有所帮助。
答案 3 :(得分:0)
试试这种方式..
foreach ($_POST['client0'] as $val) {
echo $val['amount'] ;
}