PHP按钮href无法工作

3

我正在为一个学校项目尝试使用仅使用MySQLi和php创建购物车。为此,我有一个名为index.php的目录。其中有一个带有产品的表格,每个产品后面都有一个按钮,应该将该项目添加到购物车中。

唯一的问题是我无法正确地使链接工作。

    <?php
    session_start();
    include 'connect.php';
    $qry = "select * from products";
    $result = mysqli_query($connect, $qry);

    echo "<table class='catalogue'>";
    echo "<tr><th>ID</th><th>Code</th><th>Name</th><th>Description</th><th>Image</th></th><th>Price</th><th>Buy</th></tr>";

    while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {

        echo "<tr><td>";
        echo $row['id'];
        echo "</td><td>";
        echo $row['product_code'];
        echo "</td><td>";
        echo $row['product_name'];
        echo "</td><td>";
        echo $row['product_desc'];
        echo "</td><td>";
        echo $row['product_img_name'];
        echo "</td><td>";
        echo $row['price'];
        echo "</td><td>";
        echo "<input type='submit' value='Add' href='cart.php?id=['id']'/>";
        echo "</td></tr>";
    }

    echo "</table>";
    ?>

cart.php看起来像这样。
    <?php
session_start();
require 'connect.php';
require 'item.php';
$result = mysqli_query($connect, 'select * from products where id='.$_GET['id']);
$product = mysqli_fetch_object($result);   
if(isset($_GET['id'])){
    $item = new Item();
    $item->id = $product->id;
    $item->name = $product->product_name;
    $item->price = $product->price;
    $item->quantity = 1;
    $_SESSION['cart'][] = $item;
}
echo "<table class='cart'>";
echo "<tr><th>ID</th><th>Name</th><th>Price</th><th>Quantity</th><th>Sub Total</th></tr>";
$cart = unserialize(serialize($_SESSION['cart']));
for($i=0; $i<count($cart); $i++){
    echo "<tr><td>";
    echo $cart[$i]->id;
    echo "</td><td>";
    echo $cart[$i]->product_name;
    echo "</td><td>";
    echo $cart[$i]->price;
    echo "</td><td>";
    echo $cart[$i]->quantity;
    echo "</td><td>";
    echo $cart[$i]->price * $cart[$i]->quantity;
    echo "</td></tr>";
    }
?>  

请谅解您可能看到的其他错误,我对PHP还比较新。


1
按钮没有href属性。请查看有关HTML表单的教程。 - developerwjk
这个 select * from products where id='.$_GET['id'] 会导致 SQL 注入。使用预处理语句将用户输入与 SQL 分离。 - chris85
echo "<a href='cart.php?id=" . $row['id'] . "'>Add</a>"; - Steve
1个回答

6

按钮没有href属性,锚点(<a>)有,所以使用锚点应该是这样的:

echo "<a href='cart.php?id=$row[id]'/>Add</a>";

如果您想让它看起来像一个按钮,您总是可以将其设计成按钮的样式。


请确保将此答案标记为正确答案。 - iSkore

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接