Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 向数组中添加项并跟踪jQuery中的变量_Javascript_Jquery_Html_Mysql_Arrays - Fatal编程技术网

Javascript 向数组中添加项并跟踪jQuery中的变量

Javascript 向数组中添加项并跟踪jQuery中的变量,javascript,jquery,html,mysql,arrays,Javascript,Jquery,Html,Mysql,Arrays,基本上,我需要跟踪POS系统中的变量。当您单击顶部的项目时,它会将其添加到数组中的列表中(从数据库中提取),我需要将“计数”设置为1(即添加了1个项目),当您再次单击添加项目时,它会检查列表中的项目数组,如果存在,则会将一个项目添加到“计数”中。我无法做到这一点,它只是将一个项目添加到数组中,然后再也不做任何事情。任何协助都将不胜感激 <!doctype html> <html lang="en"> <? // Connect database.

基本上,我需要跟踪POS系统中的变量。当您单击顶部的项目时,它会将其添加到数组中的列表中(从数据库中提取),我需要将“计数”设置为1(即添加了1个项目),当您再次单击添加项目时,它会检查列表中的项目数组,如果存在,则会将一个项目添加到“计数”中。我无法做到这一点,它只是将一个项目添加到数组中,然后再也不做任何事情。任何协助都将不胜感激

<!doctype html>
<html lang="en">
    <?
    // Connect database. 
    include("settings.php");
    mysql_connect($db_host, $db_user, $db_pass);
    mysql_select_db($db_name);
    ?>

    <head>
        <meta charset="UTF-8"/>
        <title>POS</title>
        <link rel="stylesheet" href="dist/css/bootstrap.css">
    </head>

    <body>
        <h1>Company</h1>
        <h4>User</h4>
        <div class="row">
            <div class="col-sm-12 col-md-8">
                <div class="pagination btn-group" id="items">
                    <? $sql = "SELECT itemname FROM items ORDER BY itemname ASC";
                    $result = mysql_query($sql);

                    while ($row = mysql_fetch_array($result))
                    {
                        $datacost = $row['price'];
                        $id = $row['id'];
                        $itemname = $row['itemname'];

                        echo "<button class='btn btn-medium highlight-color-0' id='$id' item-name='$itemname' data-cost='$datacost'><div class='btn-image gears'></div><span class='btn-text'>$itemname</span>";
                    }

                    echo "</button>"; ?>
                </div>
            </div>

            <div class="col-sm-6 col-md-4">
                <h2>Totals</h2>
                <ul id="items">
                </ul>
                <h3 id="price">£0</h3>
                <button class="btn btn-large background-color-1">checkout</button>
                <button class="btn btn-large background-color-2">add to tab</button>
            </div>
        </div>

        <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
        <script>
            // Set up an object for the order
            order =
            {
                ids: [],
                itemNums: [],
                total: 0,

                // Initialise things
                init: function()
                {
                    order.itemNums[0] = 0;

                    // Do something when someone clicks a button
                    $('#items button').click(function()
                    {
                        id = $(this).attr('id');
                        name = $(this).attr('item-name');
                        price = $(this).attr('data-cost');

                        // Add item to order
                        if ((order.itemNums[id] < 1) || (order.itemNums[id] == null))
                        {
                            order.itemNums[id] = 1;
                            order.addItemToOrder(id, name, price);
                        }
                        else
                        {
                            order.itemNums[id]++;
                        }
                    });
                },

                addItemToOrder: function(id, name, price)
                {
                    $("ul#items").append("<div class='tag-remove'>" + name + "</div>");
                    $("ul#items").append("<div class='tag tag-rounded tag-padded background-color-1 light-text'>" + order.itemNums[id] + "</div><br>");
                    order.updateTotal(price);
                },

                updateTotal: function(price)
                {
                    order.total += price * order.itemNums[id];

                    $('h3#price').html("£" + parseFloat(order.total, 10).toFixed(2));
                }
            };

            $(function()
            {
                order.init();   
            });
        </script>
    </body>
</html>

销售时点情报系统
公司
使用者

看起来您希望在order对象之前添加一个“tally”变量,然后在click函数中增加它?它需要是数组吗?因为会有不同的项目有不同的计分啊,也许我误解了,你那么你想计分每个项目有多少?例如2个桔子,3个苹果,5个香蕉等等?是的,坚持水果的例子,假设顶部有按钮来选择ie苹果桔子香蕉菠萝,当你点击苹果时,它会将其添加到列表中。然后,当再次单击苹果时,它会将其更改为x2,然后是x3等。然后,如果单击香蕉,它会将其添加到带有x1的苹果下面。有没有一种简单的方法可以做到这一点?order对象正在更新,但是只有在元素尚未添加到order时,才可以更改HTML。因此,在
order.itemNums[id]++
之后,您需要更新HTML,或者编写一个函数来呈现整个订单,并在发生任何更改后调用它。