如何通过单击结帐按钮更新产品数量的值?

时间:2015-07-10 15:42:30

标签: php mysql

我有一个小商店,我想要做的是在更改输入字段中的值后更新会话数量。

cart.php

if(count($_SESSION['cart_items'])>0){

        $product_ids = "";
        foreach($_SESSION['cart_items'] as $product_id=>$value){
            $product_ids = $product_ids . $product_id . ",";
        }

        $product_ids = rtrim($product_ids, ',');

        $query = "SELECT product_id, name FROM products WHERE product_id IN ({$product_ids}) ORDER BY name";

        $stmt = $con->prepare( $query );
        $stmt->execute();


        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
            extract($row);
            $quan = $_SESSION['cart_items'][$product_id];

            echo "{$name}";
            echo "<input type='number' value='{$quan}'>";   
        }

        echo "<form action='checkout.php' method='get'>
            <button> Checkout</button>
            </form>"; 

    }

因此,当我点击checkout按钮时,checkout.php上应该有适合每种产品的数量。

checkout.php

$query = "SELECT product_id, name FROM products WHERE product_id IN ({$product_ids}) ORDER BY name";

    $stmt = $con->prepare( $query );
    $stmt->execute();

    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
        extract($row);

        $quan = $_SESSION['cart_items'][$product_id];

        echo "{$name}";
        echo "{$quan}";
    }

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你必须做那样的事。

cart.php

if(count($_SESSION['cart_items'])>0){

    $product_ids = "";
    foreach($_SESSION['cart_items'] as $product_id=>$value){
        $product_ids = $product_ids . $product_id . ",";
    }

    $product_ids = rtrim($product_ids, ',');

    $query = "SELECT product_id, name FROM products WHERE product_id IN ({$product_ids}) ORDER BY name";

    $stmt = $con->prepare( $query );
    $stmt->execute();

    echo "<form action='checkout.php' method='post'>";

    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
        extract($row);
        $quan = $_SESSION['cart_items'][$product_id];

        echo "{$name}";
        echo "<input type='number' name='quantity_{$product_id}' value='{$quan}'>";   
    }


        echo "<input type='submit' value='Chekout'> Checkout</input></form>"; 

}

checkout.php:

$query = "SELECT product_id, name FROM products WHERE product_id IN ({$product_ids}) ORDER BY name";

$stmt = $con->prepare( $query );
$stmt->execute();

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
    extract($row);

    $quan = $_SESSION['cart_items'][$product_id];

$productStr = "quantity_" . {$product_id};
$newQuant = $_POST[$productStr];

echo "{$name}";
    echo "{$quan}";
    echo $newQuant;
}