自动售货机程序PHP

时间:2016-03-01 21:42:21

标签: php static accumulate

所以我在php上做这个程序。这是一个简单的自动售货机程序,有3张图片。

逻辑:在$ total变量中每次点击图片,累积价格。然后,在点击显示总价时,它应显示总价格。

然而,我只显示一个流行音乐的价格。当我单击每个图像两次时,它只显示一个pop的价格,第一个。?

这是我到目前为止所拥有的:     

        $total = 0;

        display_form();

        if(!isset($_POST['submit']))
        {
            display_form();

            if(isset($_POST['coke'])) //test for when coke-image is clicked
            {
                $total += 2.00;
            }
            else if(isset($_POST['rootbeer'])) //test for when rootbeer-image is clicked
            {
                $total += 2.00;
            }
            else if(isset($_POST['lemonlime'])) //test for when lemon lime-image is clicked
            {
                $total += 1.00;
            }
            else if(isset($_POST['submit']))
            {
                trackPrice($total);
            }
        }
        else
        {
            display_form(); 
        }

                    function trackPrice($total)
        {
            echo "Your price is $total.";
        }


        function display_form()  //displays actual form
        {

有什么想法?我打算在$ total上加静态? 非常感谢。

2 个答案:

答案 0 :(得分:3)

根据代码示例,每次提交表单后,您都会将$total设置为零。

您需要在会话中设置运行总计,以便在每次发布后检索它(更好的解决方案)

您可以在包含运行总计的表单中添加隐藏元素,然后在提交表单时使用$_POST["running_total"]对其进行检索。

答案 1 :(得分:2)

如前所述,您应该使用会话。这是一个简单的例子。

"fs-jetpack": "^0.7.1"

我也冒昧地改变了显示表单的代码的一些结构(这是你一直想要的东西吗?)