在PHP中单击按钮时,值是否未更新或保存?

时间:2015-08-13 12:48:57

标签: php

状态

学徒。

我的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;
    }


?>

问题: 为什么我的健康/输入值更新?如何在下次攻击时保存会话并从新变量中减去?

3 个答案:

答案 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">

这可能会成功。您可能需要一个隐藏的输入字段来表示当前的健康状况。