我正在尝试在PHP中创建一个结帐页面。列出项目的页面称为shop.php。在此页面上,我显示了要出售的数字项目,每个项目旁边都有一个复选框。我从数据库中提取商品名称和价格信息。这是我的主要代码。
$row = mysql_fetch_array($query);
while($row) {
echo "<TR>";
echo "<TD><B>$row[Name] </B></TD>";
echo "<TD><B>"."$"."$row[Price] </B></TD>";
echo "<TD><input type=checkbox name=foods[] value='$row[Price]' /></TD>";
echo "</TR>";
$row = mysql_fetch_array($query);
}
<input type="submit" name="buy" value="Buy Now" />
所以我设置食物[]复选框的名称,这将是一个数组,其中包含提交的所有复选框的值。当用户点击“立即购买”按钮时,他们将被删除到cart.php页面,该页面将显示他们购买的商品的名称和价格。我知道我可以通过循环遍历$ items数组来输出价格。我遇到的问题是我不明白如何显示项目名称。我做了以下事情:
$row = mysql_fetch_array($query);
while($row) {
echo "<TR>";
echo "<TD><B>$row[Name] </B></TD>";
echo "<TD><B>"."$"."$row[Price] </B></TD>";
echo "<TD><input type=checkbox name='$row[Name]' value='$row[Price]' /></TD>";
echo "</TR>";
$row = mysql_fetch_array($query);
}
这次,项目的名称和价格都包含在复选框中作为其名称和值。但同样,问题是如何在没有硬编码的情况下在cart.php页面上显示它们。我的意思是如何在不做这样的事情的情况下显示项目名称及其价格:
(假设其中一个项目名称是Burger,它被填充为复选框的名称。)
if (isset($_POST['Burger'])){
echo "<td>$_POST['Burger']</td>";
}
我很感激有关此问题的任何建议/提示。谢谢。
答案 0 :(得分:1)
将每个复选框的名称设置为食物[$ row [name]]。你应该有以下代码:
$row = mysql_fetch_array($query);
while($row) {
echo "<TR>";
echo "<TD><B>$row[Name] </B></TD>";
echo "<TD><B>"."$"."$row[Price] </B></TD>";
echo "<TD><input type=checkbox name='foods[{$row[Name]}]' value='$row[Price]' /></TD>";
echo "</TR>";
$row = mysql_fetch_array($query);
}
<input type="submit" name="buy" value="Buy Now" />
在POST时,您将拥有关联的项目名称和价格数组。
答案 1 :(得分:1)
如果您将复选框命名为:
<input type='checkbox' name='foods[{$row['Name']}]' value='{$row['Price']}' />
您可以访问数组$ _POST ['foods'],键/值将是Name / Price。所以你可以这样做:
foreach($_POST['foods'] as $name => $price) {
echo "<tr><td>$name</td><td>$price</td></tr>";
}