【问题标题】:how do I add an unknown selection of inventory items with a user supplied quantity to a cart?如何将具有用户提供数量的未知库存项目选择添加到购物车?
【发布时间】:2025-12-25 20:10:10
【问题描述】:

我目前正在使用 PHP、JAVASCRIPT、MYSQL、XHTML、CSS 来开发我的网站。请注意,解决方案不限于此,而是在可能的情况下首选。

我有一个大的 MYSQL 小部件表和一个允许用户搜索特定小部件的页面。

例如,假设用户键入某个小部件的型号名称,搜索可能会返回 20 种不同的小部件型号。每个小部件型号都不一样,它们都有自己的小部件单价和小部件型号名称等。

现在是棘手的部分(无论如何对我来说),用户应该能够在所需的小部件 html 文本字段旁边输入一个数量。

然后,用户应该能够按下添加到购物车按钮,该按钮存储数量和模型与其关联的数量。

(设计说明:MYSQL 查询用于返回搜索结果列表,我使用 PHP 回显找到的小部件行。在每次迭代时,我还显示应输入所需数量的文本字段。 )。

我的主要问题是弄清楚如何将 MYSQL 绘制的小部件名称与用户输入的数量相关联并将其一起存储在购物车中。有人能指出我正确的方向吗,我不知道如何解决这个问题。

我在想我可能能够将小部件模型回显到文本字段 Id 中,但是在发布后我将如何确定哪个模型有数量......这可能不是最好的方法,即使它是可能的。

谢谢

【问题讨论】:

    标签: php javascript html shopping-cart


    【解决方案1】:

    使文本字段名称类似于 items[uniq_module_id]

    <input type="text" name="items[10001]">
    <input type="text" name="items[10002]">
    <input type="text" name="items[10003]">
    

    然后在php中

    $items = $_POST['items'];
    print_r($items);
    

    你会得到

    [items] => Array
        (
            [uniq_module_id] => quantity
                ...
        )
    

    和一个样本

    $items = (isset($_POST['items'])) ? $_POST['items'] : array();
    if (is_array($items)) {
        foreach ($items as $module_id => $quantity)
        {
            if (intval($quantity) > 0) {
                add2cart($module_id, $quantity);
            }
        }
    }
    

    【讨论】:

    • 所以...让我直截了当...行 $items = $_POST['items'] ;保存包含项目[10001]、[10002]、3 等的所有文本字段以及用户输入的相关数量?
    • 是的。 $items 将是一个数组,其中 module_id 为键,数量为值。如果文本字段为空白,则数量也将为空白。
    【解决方案2】:

    每个小部件上是否都有“添加到购物车”按钮/链接?生成一个按钮/链接,将所需信息(数量和小部件 ID)发送到 add-to-cart.php。

    foreach ($rows as $row) {
        // Print widget info
        echo '<input type="text" name="quantity" id="widget_' . $row['widgetID'] . '_qty" value="1">';
        echo "<button onclick=\"javascript: location.href='add-to-cart.php?widgetId=" . $row['widgetID'] . "&quantity=' + document.getElementById('widget_" . $row['widgetId'] . "_qty').value;\" value=\"Add to cart\" />";
    }
    

    或类似的东西。使用 Ajax 也可能是一个很好的解决方案。

    【讨论】:

    • 不,我认为在每个小部件上都有一个添加按钮。为整个页面添加 1 个似乎是合乎逻辑的。 (刚看到星际迷航.. :) 感谢您的意见
    • 还不错:) 但是,这种方法很常见。
    最近更新 更多