首页 > 解决方案 > 除了 html 表单之外,还有其他在 php 页面上获取用户输入的方法吗?

问题描述

所以我必须做一个编程任务,为小学生创建一个程序来测试他们的数学技能。您应输入难度级别、练习的计算类型(+ - * /)和问题数量。之后,您将被询问您在选择的计算类型和难度级别中指定的问题数量。我面临的主要问题是,每当您点击 html 表单中的提交按钮时,它总是会同时刷新页面。我想使用 rand() 创建不同的任务,因此每当您按下提交按钮回答问题时,它都会刷新,删除您之前指定的所有参数并创建新的随机数。这会导致问题,显然我不能再使用我的任何参数并且它不会保存用户输入。现在的问题:除了 <input type:"submit"> 之外,还有什么方法可以从 html 表单提交输入?或者,你能允许提交刷新,所以我可以在我的 php 代码中使用输入。

到目前为止我做了什么:

将其拆分为不同的 .php 文档 - 这与我的任务背道而驰,具有动态表单,显示您的成功。

尝试了不同的方法来防止提交刷新(window.location.reload(false)) - 没有变化

到目前为止我的代码:

<html>
<body>
<form action = "<?php echo $_SERVER['PHP_SELF'];?>" method = "post">

<p> difficulty
    <select name="diff">
        <option value="1">level 1</option>      
        <option value="2">level 2</option>
        <option value="3">level 3</option>
    </select></p>
    
<p> type
    <select name="type">                        
        <option value="+">addition </option>    
        <option value="-">subtraction</option>
        <option value="*">multiplication</option>
        <option value="/">division</option>
    </select></p>
    
<p> number of questions <input name="number" value="1" ></p>

<p><input type = "submit"> <input type = "reset"> </p>  

<?php 
if(isset($_POST["diff"]) && $_POST["type"] && $_POST["number"])
{
    $diff=$_POST["diff"];
    $type=$_POST["type"];
    $number=$_POST["number"];

    $max= 0;

    if($diff=="1") {$max= 10;}
    elseif ($diff=="2") {$max = 100;}
    else {$max= 1000;}

    function add()
    {
        global $max; 
        
        
    }

    for($a=1;$a <= $number; $a++) {
        if ($type == "+") {
            echo "<br> task $a : " .add();  
        }
        elseif ($type == "-") {
            echo "<br> task $a : " .sub();  
        }
        elseif ($type == "*") {
            echo "<br> task $a : " .mul();  
        }
        elseif ($type == "/") {
            echo "<br> task $a : " .div();  
        }
    }
}
?>

标签: phphtml

解决方案


推荐阅读