无法通过PHP和按钮单击更改HTML标签文本

时间:2017-08-22 15:08:35

标签: php html

我正在尝试在单击HTML按钮时执行PHP函数,以更改HTML标签的文本,但我的代码无效。

以下是我的代码:

有人可以告诉我我做错了什么吗? 非常感谢您的帮助。

     <form>
        <input type="number" name="score"><br>
        <input type="submit" name="Submit" class="btn btn-primary" action="calcScore">
    </form>


    function calcScore()
{
   $playerThrow = $_GET[$score];
   return $playerThrow;
}


<label class="scorePlate"><?php echo calcScore(player1) ?></label>

2 个答案:

答案 0 :(得分:2)

  1. 您已将player1常量传递给函数,但您尚未声明它(隐式除外),也没有使用它。删除它,这是没有意义的。
  2. 字段名称为得分。它不是$score变量的值(您还没有定义)。使用字符串文字,而不是变量名。
  3. 您必须在<?php ?>
  4. 中定义您的功能
  5. 您在创建函数时必须使用与调用它时相同的名称
  6. 您需要测试该值是否存在(以避免PHP发出警告)并提供适当的行为(如果不存在)
  7. 您需要将用户输入编码为HTML以避免创建XSS安全漏洞
  8. 输入元素没有操作属性。删除它,这是毫无意义的。 (它们有一个formaction属性,它允许提交属性覆盖表单的正常操作,但这样做没有意义。)
  9. 这样:

         <form>
            <input type="number" name="score"><br>
            <input type="submit" name="Submit" class="btn btn-primary">
        </form>
    
    <?php
        function calcScore() {
            if (isset($_GET["score"])) {
                $playerThrow = $_GET["score"];
            } else {
                $playerThrow = "default";
            }
        return $playerThrow;
        }
    ?>
    
    <label class="scorePlate"><?php echo htmlspecialchars(calcScore()) ?></label>
    

    除此之外:标签的要点是描述表单控件的目的(输入,选择等)。使用它完全没有意义。您应该选择一个更合适的元素(并添加一个标签元素来描述您的分数字段)。

答案 1 :(得分:-1)

这样做的正确方法是 -

<?php
$var = $_POST['score'];
 ?>
 <html>
 <form method="post">
    <input type="number" name="score" /><br>
    <input type="submit" name="Submit" class="btn btn-primary" />
    </form>
<label class="scorePlate"><?php echo $var ?></label>
</html>