【问题标题】:How to send the PHP value back to the HTML form?如何将 PHP 值发送回 HTML 表单?
【发布时间】:2021-07-27 01:38:50
【问题描述】:

我一直在尝试使用 PHP cookie 构建程序。用户界面基本上是这样的。 My basic program

逻辑是这样的。当用户输入产品名称、价格和数量并点击“添加”按钮时,价格*数量的总价值将落在“总账单价值”文本框中。用户可以继续为“价格”和“数量”添加越来越多的值,每次点击“添加”时,所有的值都会被添加。所以这应该通过使用cookies来完成。 “清除”按钮将重置 cookie,“打印”按钮也将使用相同的 cookie 打印出用户在此之前输入的所有内容。

无论如何,我刚开始编码,我已经被困住了。我不确定我的错误是什么。当我单击“添加”按钮时,每次输入价格和数量时都不会添加值。相反,页面会刷新以仅提供一次输入的价格和数量的产品。这是我的代码。

`

    <form method="POST" >
        <ul style="list-style-type:none;">
            <li>
                Product Name: <input type="text" name="ProductName"> <br>
                Price: <input type="number" name="Price" value="price"> <br>
                Quantity: <input type="number" name="Quantity" value="qty"><br>
                <input type="submit" name="btnClick" value="Add"> 
                <input type="submit" name="btnReset" value="Clear">
                <input type="submit" name="btnPrint" value="Print"><br>
                Total Bill Value: <input type="text" name="Bill">                 
            </li>
        </ul>
    </form>


     

<?php
    if($_SERVER["REQUEST_METHOD"] == "POST")
    {
        $result=0;
        if(isset($_POST["btnReset"]))
        {
            setCookie("result", $result);
        }
        elseif(isset($_POST["btnClick"]))
        {
            if(isset($_COOKIE["result"]))
            {
                $result=$_COOKIE["result"];
            }
            $result= $_POST["Price"]*$_POST["Quantity"];
            echo $result; 
            setCookie("result", $result);
        }
        else
        {
            echo "Product: ".$_POST["ProductName"];
            echo "Price: ".$_POST["Price"];
            echo  "Quantity: ".$_POST["Quantity"];
        }
    }
?>
</body>
`

我确信这是我正在努力解决的一个愚蠢的错误。但是,我是一个绝对的初学者,如果有人能指出我的错误并向我解释,我将不胜感激。 所以我主要想知道两点:

  1. 为什么单击“添加”按钮时未设置我的 cookie?
  2. 如何将PHP中计算出来的值放回html表单,让“Total Bill Value”文本框有总值?

提前致谢!

编辑:我确实发现了我的错误。我应该把 $result=$result + $_POST["Price"]*$_POST["Quantity"]; 然后将这些值相加。 但是想知道如何将 PHP 中计算的总账单值返回到 HTML 表单中

【问题讨论】:

    标签: php forms if-statement cookies setcookie


    【解决方案1】:

    您应该在输出任何 HTML 之前调用 setcookie(),因此将 PHP 代码移到其余部分之上。

    设置表单输入:

    <?php 
    if (isset($result)) {
        $bill = $result;
    } else {
        $bill = '';
    }
    ?>
    Total Bill Value: <input type="text" name="Bill" value="<?php echo $bill; ?>">
    

    【讨论】:

    • 哦,好吧。太感谢了!!那行得通:)
    【解决方案2】:

    请使用 setcookie 而不是 setCookie

    这会起作用

    快乐编码

    【讨论】:

    • 非常感谢您的回答!但不幸的是,它没有用:(每次给出价格和数量时,它仍然没有将值加起来..
    猜你喜欢
    • 2020-03-12
    • 2014-06-23
    • 1970-01-01
    • 2015-07-15
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多