如何将 PHP 值发送回 HTML 表单?
How to send the PHP value back to the HTML form?
我一直在尝试使用 PHP cookie 构建一个程序。用户界面基本上是这样的。
My basic program
逻辑是这样的。当用户输入产品名称、价格和数量并点击“添加”按钮时,价格*数量的总值将落在“账单总值”文本框中。用户可以继续为“价格”和“数量”添加越来越多的值,每次点击“添加”时,所有值都会被添加。所以这应该通过使用 cookie 来完成。 “清除”按钮将重置 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>
`
我确信这是我正在努力解决的一个愚蠢的错误。然而,我是一个绝对的初学者,如果有人能指出我的错误并向我解释,我将不胜感激。
所以我主要想知道两件事:
- 为什么单击“添加”按钮后我的 cookie 没有被设置?
- 如何将PHP中计算出的值返回到html表格中,使“总帐单价值”文本框显示总值?
提前致谢!
编辑:我确实发现了我的错误。我应该把 $result=$result + $_POST["Price"]*$_POST["Quantity"];
然后将这些值加起来。
但是想知道如何将 PHP 中计算的总帐单价值放回 HTML 形式
请使用 setcookie 而不是 setCookie
这会起作用
快乐编码
您应该在输出任何 HTML 之前调用 setcookie()
,因此将 PHP 代码移到其余代码之上。
设置表单输入:
<?php
if (isset($result)) {
$bill = $result;
} else {
$bill = '';
}
?>
Total Bill Value: <input type="text" name="Bill" value="<?php echo $bill; ?>">
我一直在尝试使用 PHP cookie 构建一个程序。用户界面基本上是这样的。 My basic program
逻辑是这样的。当用户输入产品名称、价格和数量并点击“添加”按钮时,价格*数量的总值将落在“账单总值”文本框中。用户可以继续为“价格”和“数量”添加越来越多的值,每次点击“添加”时,所有值都会被添加。所以这应该通过使用 cookie 来完成。 “清除”按钮将重置 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>
`
我确信这是我正在努力解决的一个愚蠢的错误。然而,我是一个绝对的初学者,如果有人能指出我的错误并向我解释,我将不胜感激。 所以我主要想知道两件事:
- 为什么单击“添加”按钮后我的 cookie 没有被设置?
- 如何将PHP中计算出的值返回到html表格中,使“总帐单价值”文本框显示总值?
提前致谢!
编辑:我确实发现了我的错误。我应该把 $result=$result + $_POST["Price"]*$_POST["Quantity"]; 然后将这些值加起来。 但是想知道如何将 PHP 中计算的总帐单价值放回 HTML 形式
请使用 setcookie 而不是 setCookie
这会起作用
快乐编码
您应该在输出任何 HTML 之前调用 setcookie()
,因此将 PHP 代码移到其余代码之上。
设置表单输入:
<?php
if (isset($result)) {
$bill = $result;
} else {
$bill = '';
}
?>
Total Bill Value: <input type="text" name="Bill" value="<?php echo $bill; ?>">