php - 除了 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();
}
}
}
?>
解决方案
推荐阅读
- vue.js - 如何删除以下 npm install 错误?
- c++ - mmap (c)、fopen(c) 和 ifstream(c++) 的差异结果
- python - 当有多个具有相同类名的类时如何指定单击一个类。(硒蟒)
- php - 无法在 php 中设置动态类名
- java - 为两个不同的移动实例化一个撤销方法
- python - Pycharm:无法基于python 3.9.01+制作venv
- wpf - Powershell GUI 冻结,即使使用运行空间
- javascript - Javascript innerText - 回车 - 正则表达式不起作用
- python - Python 和 SQLite 需要帮助 --> TypeError: 'NoneType' object is not subscriptable
- python-3.x - 使用另一个列表创建一个列表