php - 在 PHP 中使用单个按钮提交多个表单
问题描述
我正在做我的学校项目,这是一个管理员(老师)可以创建测试并将其提供给学生的网站。从我开始使用 PHP 到现在才 4 个月,我突然被表格卡住了。
当管理员按下按钮创建测试时,页面打开questionsCount.php,其中包含一个简单的表单,管理员在其中为测试命名并输入测试将有多少问题。
脚本将数据发送到newTest.php
<?php
$nazovTestu = $_POST['nazovTestu'];
$pocetOtazok = $_POST['pocetOtazok'];
for($i = 1; $i <= $pocetOtazok; $i++){
echo "<p class='pCenter'> Otazka: $i";
stav();
}
?>
如您所见,它有一个循环,该循环从名为 newQuestion.php 的脚本中调用函数 stav( )
<?php
function stav(){
echo " <br><br><br>
<form>
<table>
<tr>
<td> <textarea class='otazkaField' name='otazkaName' id='' cols='30'
rows='5'></textarea> </td>
</tr>
<tr class='trBreak'>
</tr>
<tr>
<td>Spravna odpoved: </td>
</tr>
<tr>
<td>A<input type='radio' name='moznostA'> <input type='text'> </td>
</tr>
<tr>
<td>B<input type='radio' name='moznostA'> <input type='text'> </td>
</tr>
<tr>
<td>C<input type='radio' name='moznostA'> <input type='text'> </td>
</tr>
<tr>
<td>D<input type='radio' name='moznostA'> <input type='text'> </td>
</tr>
</table>
</form> <br><br><br><hr>";}
?>
所以基本上当管理员输入测试的名称和问题的数量并按下提交按钮时,newtest.php脚本会打开,表单的数量与问题的数量相同。
现在我应该实现一个按钮,将所有问题和答案简单地保存到数据库中。但我不确定如何用一个按钮做到这一点。我还没有考虑过其他解决方案,比如使用 JavaScript,因为我的 JS 技能很差,而且我真的是 PHP 初学者。
解决方案
您需要在函数之外定义表单操作、方法和提交按钮。
<?php
echo " <br><br><br>
<form action="answer.php" method="post" >
function stav(){
$z =
<table>
<tr>
<td> <textarea class='questionField' name="questionName".$z id='' cols='30'
rows='5'></textarea> </td>
</tr>
<tr class='trBreak'>
</tr>
<tr>
<td>Select the answer: </td>
</tr>
<tr>
<td>A<input type='radio' name='possibilityA' value ='1'> Vaša možnosť1 </td>
</tr>
<tr>
<td>B<input type='radio' name='possibilityA' value ='2'> Vaša možnosť2 </td>
</tr>
<tr>
<td>C<input type='radio' name='possibilityA' value ='3'> Vaša možnosť3 </td>
</tr>
<tr>
<td>D<input type='radio' name='possibilityA' value ='4'> Vaša možnosť4 </td>
</tr>
</table>
<br><br><br><hr>";
$z++;
}
<input type="submit">
</form>
?>
推荐阅读
- css - 当我调整浏览器窗口的大小时,如何使我的表单不会分崩离析?
- spacy - 如何仅针对 NER 优化 SpaCy 管道(使用现有模型,无需训练)
- ios - UIAlertAction 不可重用
- node.js - Sequelize Insert 记录由 Model.Create 与深度关联
- javascript - 有什么方法可以在 docker 容器中使用 puppeteer 和带有 headless:false 的 chromium 运行 NextJS?
- flutter - 从另一个函数结束流
- java - 外部排序 - 使用 2 路合并方法合并 N 个文件
- r - 基于相关矩阵为R中的多个时间步生成随机数据
- steganography - 在termux中进行隐写后如何取回我的文件?
- javascript - Loopback4:无法启动应用程序。错误:连接超时