确定单击了哪个动态生成的按钮

时间:2016-05-12 19:39:47

标签: php html json

我在一个表中动态创建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,因此非常欢迎任何可以提供帮助的建议或意见。

1 个答案:

答案 0 :(得分:2)

一种方法是创建按钮数组,并使用代码或其他唯一的索引作为:

<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']);