为什么我的get方法不起作用(html,php)

wkyowqbh  于 2023-01-04  发布在  PHP
关注(0)|答案(1)|浏览(201)

我正在尝试做一个工作的"购物车"。我在网上跟随教程,因为我是一个很新的编码。目前,我只是试图打印出"id"的每一个单独的项目,存储在数据库,但它返回的所有是8。这里是我的一些代码,你可能需要看到:

    • 我的JavaScript:**
function component($productname,$productprice,$productimg,$productid){
    $element = '
    <div class="product-boxes">
        <img src="'.$productimg.'">
        <h3>'.$productname.' <h3>
        <p>'.$productprice.'</p>
        <button type="submit" name="add">Add to cart</button>
        <input type="number" name="product-id" value="'.$productid.'">
    </div>
    ';
    echo $element;
}
function getData(){
    $dbServername = "localhost";
    $dbUsername = "root";
    $dbPassword = "";
    $dbName = "productDatabase";
    $conn = mysqli_connect($dbServername,$dbUsername,$dbPassword,$dbName);
    
    $sql = "SELECT * FROM product";
    $result = mysqli_query($conn,$sql);
    if(mysqli_num_rows($result) > 0){
        return $result;
    }
}
    • 我的html:**

一个二个一个一个
这最后一段代码是用来显示每一个物品的id的。但是它只显示了8,我想这和显示http://localhost/test/index.php?product-id=1&add=&product-id=2&product-id=3&product-id=4&product-id=5&product-id=6&product-id=7&product-id=8的url有关。我不知道为什么它在url中有这么多的product-id。这可能是很简单的事情,但是我不知道,因为我是新来的。哈哈。谢谢。
我不知道该怎么修。

oug3syen

oug3syen1#

您在URL中看到多个"product-id"的原因是,您有多个表单元素具有相同的名称"product-id",并且当您提交表单时,它们都在URL中提交。
要解决此问题,您可以为每个表单元素指定一个唯一的名称,方法是将产品ID附加到名称,如下所示:
更改此内容:

<input type="number" name="product-id" value="'.$productid.'">

对此:

<input type="number" name="product-id-'.$productid.'" value="'.$productid.'">

然后在PHP代码中,您可以访问每个商品的产品ID,如下所示:

if(isset($_GET["add"])){
$product_id = $_GET["product-id-".$productid];
print_r($product_id);

}
这应该可以解决问题,并为每个项目打印出正确的产品ID。

相关问题