我正在基于php中的数据库查询ID创建许多按钮。但是我无法在其他php页面上的PHP isset函数中使用单击按钮的名称属性。
while($row = $result->fetch_assoc())
{
echo "<form method='post' action='#'>";
echo "<tr><td>" . $row["id"]. "</td><td>" . $row["iname"]. " </td>
<td>" . $row["itype"]. "</td><td>".$row["icost"]."</td>
<td>".$row["irestaurant"]."</td><td>";
?>
<input type="submit" name="<?php echo $row["id"];?>"
value="Order Now" onclick="btn(name)"></td></tr>
<?php
}
echo "</table>";
echo "</form>";
答案 0 :(得分:0)
帖子将包含一个name => value,其中name将是echo $row["id"];
的值,而值将是Order Now
请注意,您将重复为while循环的每次迭代创建一个<form>
标签,并且仅将其关闭一次。
以您的示例为例,从提交中获取ID的一个选项是使用例如array_search返回该值的第一个对应密钥。
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
echo "id: " . array_search('Order Now', $_POST, true);
}
另一种选择是给按钮起一个例如submit
的名称,而不是行ID,并将行ID传递给一个函数,该函数将向表单添加一个隐藏的输入,并带有行ID的值。
您还可以为该隐藏的输入提供名称,例如id
,这样就可以使用post数组中的键名来获取它们。
例如:
function btn(id) {
var input = document.createElement("input");
input.setAttribute("type", "hidden");
input.setAttribute("name", "id");
input.setAttribute("value", id);
document.forms[0].appendChild(input);
}
输入
<input type="submit" name="submit"
value="Order Now" onclick="btn(<?php echo $row["id"];?>)">
帖子数组可能类似于:
Array
(
[id] => 200
[submit] => Order Now
)