代码之家  ›  专栏  ›  技术社区  ›  Pau

如何将用户提供数量的未知库存项目添加到购物车?

  •  0
  • Pau  · 技术社区  · 17 年前

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

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

    比如说,如果用户输入某个小部件的型号名称,搜索可能会返回20个不同的小部件型号。每个小部件模型都不同,它们都有自己的小部件单价和小部件模型名称等。

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

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

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

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

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

    谢谢

    2 回复  |  直到 17 年前
        1
  •  4
  •   arahaya    17 年前

    使文本字段名称类似于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);
            }
        }
    }
    
        2
  •  0
  •   Björn    17 年前

    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可能也是一个很好的解决方案。