首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动售货机程序php

自动售货机程序php
EN

Stack Overflow用户
提问于 2016-03-02 05:42:21
回答 2查看 1.1K关注 0票数 0

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

逻辑:在$total变量中每点击一次图片就累积他们的价格。然后,单击display total price,它应该会显示总价格。

然而,我的只显示一个pop的价格。当我点击每个图片两次时,它只显示第一个pop的价格。

这是我到目前为止所知道的:

代码语言:javascript
复制
        $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上放静电?非常感谢。

EN

回答 2

Stack Overflow用户

发布于 2016-03-02 05:48:06

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

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

您可以在表单中添加一个包含汇总的隐藏元素,然后在提交表单时使用$_POST["running_total"]检索它。

票数 3
EN

Stack Overflow用户

发布于 2016-03-02 05:56:29

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

代码语言:javascript
复制
<?php
    session_start();

    //Select and uncomment either one of the two.
    //1. $_SESSION['total'] = $_SESSION['total'] ?? 0; // PHP 7+;
    //2. $_SESSION['total'] = isset($_SESSION['total']) ? $_SESSION['total'] : 0; // PHP < 7.

    if(!isset($_POST['submit'])){    
        if(isset($_POST['coke'])){ //test for when coke-image is clicked
            $_SESSION['total'] += 2.00;
        } elseif(isset($_POST['rootbeer'])){ //test for when rootbeer-image is clicked
            $_SESSION['total'] += 2.00;
        } elseif(isset($_POST['lemonlime'])){ //test for when lemon lime-image is clicked
            $_SESSION['total'] += 1.00;
        }
    }
?>
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
        <label>Total Price: <?php echo $_SESSION['total']; ?></label>
        <input> .... </input>
        <input> .... </input>
        <input> .... </input>
    </form>

我还随意更改了显示表单的代码结构(这是您一直想要的,对吧?)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35734111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档