我正在一个表中动态创建10行,每行末尾都有一个按钮。这些行都包含在一个表单中。当我按下按钮时,$_POST
返回array(0) { }
,从php://input
收集的内容是
string(239) "code=J7410&amount=0&code=abc123&amount=0&code=42139&amount=0&code=BBTCG&amount=0&code=13064&amount=0&code=D40717&amount=0&code=D11255&amount=0&code=D40617&amount=0&code=D68691&amount=0&code=11-600.50.04&amount=0&code=9789170378041&amount=0"
这是所有相关代码:
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<table>
<tr>
<td>ID</td>
<td>Name</td>
<td>VAT(%)</td>
<td>Price exl VAT</td>
<td>Amount</td>
</tr>
<?php
foreach ($json as $row)
{
$code = $row['code'];
echo "<tr>";
?>
<td><input type="text" name="code" value="<?php echo $code?>" readonly title=""></td>
<?php
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['vat'] . "</td>";
echo "<td>" . $row['price'] . "</td>";
echo "<td>" . "<input type='number' name='amount' value='0'>" . "</td>";
?>
<td><input type="submit" name="<?php $row['code'] ?>" value="Add To Cart"></td>
<?php
echo "</tr>";
}
echo "</table>";
echo "</form>";
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
var_dump($_POST);
$rest_json = file_get_contents("php://input");
var_dump($rest_json);
}
我在这里需要的是一些方法来识别哪个按钮被点击了。通过ID,或者是否有一种方法可以动态地为按钮提供唯一的标识符来解决这个问题。
变量$json
类似于$rest_json
从文件中读取,并且完全正常工作。
我昨天开始学习PHP,所以任何有帮助的建议或意见都是非常受欢迎的。
一种方法是创建一个按钮数组,并使用代码或其他唯一的东西作为索引:
<input type="submit" name="submit[<?php $row['code'] ?>]" value="Add To Cart">
现在输入应该看起来像:
<input type="submit" name="submit[J7410]" value="Add To Cart">
现在,如果点击该按钮,就会有一个$_POST['submit']['J7410']
,所以要获得代码,请使用:
$code = key($_POST['submit']);