我有一个变量$ numA& $ numB,其值包含10& 40.
$numA = 10; $numB = 40;
每次我点击每个按钮“+”& “ - ”另一个变量的值返回默认值。我希望每次按下按钮时,每个变量值的值都不会改变为默认值,而是分配给它的新值。
例如:(当我按“ - ”和“+”时)
desired output:
$numA = 20;
$numB = 20;
可以不使用$ _SESSION方法完成吗?这是我的代码:
<?php
$numA = 10;
if (isset($_POST["add"]))
{
$numA = $_POST["add"];
$addition = $numA + 10;
$numA = $addition;
}
$numB = 40;
if (isset($_POST["substract"]))
{
$numB = $_POST["substract"];
$substraction = $numB - 20;
$numB = $substraction;
}
?>
<form name="add" method="post">
<input type="hidden" name="add" value="<?php echo $numA ?>" />
<input type="submit" value="+" />
<?php echo "ADDITION= ", $numA, '<BR>'; ?>
</form>
<form name="subtract" method="post">
<input type="hidden" name="substract" value="<?php echo $numB ?>" />
<input type="submit" value="-" />
<?php echo "SUBSTRACTION= ", $numB, '<BR>'; ?>
</form>
请帮我这个。请提供解释。谢谢: - )
答案 0 :(得分:0)
会话或cookie是执行此操作的唯一方法(除非您希望这些值对每个人都相同,然后您可以将它们放在平面文件或数据库中)。你也可以通过$_GET
来做,但它可以减少你的控制。
原因是脚本调用之间没有固有的持久性。这是基于Web的编程的本质。除非您在呼叫之间传递某些内容,否则每次呼叫都是自动呼叫。因此,在您的脚本中,您始终以$numA
作为10,因为没有任何内容持续存在。在会话中设置您的号码,它们将持续存在于该用户
session_start(); // Have to call this before using session variables
if(!isset($_SESSION['numA'])) $_SESSION['numA'] = 10;
现在您可以使用$_SESSION['numA']
,并且在运行脚本时,您的值将递增和递减。
答案 1 :(得分:0)
每次都要覆盖存储的值,因为每次运行脚本时都显式设置$numA
和$numB
的值。此外,您正在处理两个表单,因此只有一组值被POST,所以您只需检查一个特定的变量。此代码将为您提供所需的内容(单击“+”或“ - ”将两个值都更改为20)并且数字会随后更改每次点击。
<?php
if (isset($_POST["add"]))
{
$numA = $_POST["add"];
$numA += 10;
} else {
$numA = 10;
}
if (isset($_POST["substract"]))
{
$numB = $_POST["substract"];
$numB -= 20;
} else {
$numB = 40;
}
?>
<form id="math" method="post">
<input type="hidden" name="add" value="<?php echo $numA ?>" />
<input type="button" onclick="document.getElementById('math').submit();" value="+" />
<?php echo "ADDITION= ", $numA, '<BR>'; ?>
<input type="hidden" name="substract" value="<?php echo $numB ?>" />
<input type="button" onclick="document.getElementById('math').submit();" value="-" />
<?php echo "SUBSTRACTION= ", $numB, '<BR>'; ?>
</form>
除此之外,如果您想要数据持久性,则需要选择某种存储方法。它可以是会话,cookie,文本文件,$ _GET变量等,但最后你必须在调用之间传递数据。