状态:
学徒。
我的PHP知识:
初级水平。
我想用PHP代码实现的目标:
当用户点击提交按钮时,更新健康栏输入。
<form>
<input type="submit" value="Attack">
</form>
因此,如果条件为真且帖子已完成,那么我想从变量health中减去25,然后等于另一个名为input的变量。
问题:
我无法弄清楚为什么健康状况不会更新以及如何保存更新的值,即使用户刷新然后每次用户点击时使用更新的健康状况减去25&#34; attack&#34;。
我尝试了什么:
除了做一些关于Session_start()的PHP研究之外,我不确定如何在这个上下文中使用它。我甚至不完全确定为什么我的条件有问题。我没有得到任何错误消息,但是当我删除我的if语句并回显我的bar变量时,它不起作用,因为我根本没有得到任何数字,这当然让我怀疑我的数学不起作用。
<?php
$health = 100;
$input = "";
$bar = '<div>' . $health . $input . '%' . '</div>' . '<div>' . 'Stamina' . '</div>';
echo $bar;
if (isset($_POST['submit'])) {
$health - 25 == $input;
echo $bar;
}
?>
问题: 为什么我的健康/输入值更新?如何在下次攻击时保存会话并从新变量中减去?
答案 0 :(得分:2)
首先,如果省略,表格默认为GET方法。
因此,您需要在表单标记
中指定它method="post"
然后您的条件语句将失败,因为提交输入没有name属性。
name="submit"
添加到其中。然后这个$health - 25 == $input;
没有任何意义,我也不知道你在这里做了什么。
如Carrot先生的另一个答案所述,您想要使用$health = $health - 25;
我会让你看一下给出的答案,但这可以很好地说明你的情况。
使用错误报告会发出通知。
将error reporting添加到文件的顶部,这有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:只应在暂存时进行显示错误,而不是生产。
答案 1 :(得分:1)
将表单更改为以下表单 -
<form action='' method='POST'>
<input type="submit" name='submit1' value="Attack">
</form>
Then you can do -
if (isset($_POST['submit1']))
{
echo "button was pressed";
/// do other stuff.....
}
答案 2 :(得分:0)
定义您的表单,如:
<form method="POST">
这可能会成功。您可能需要一个隐藏的输入字段来表示当前的健康状况。