【问题标题】:I want to create buttons dynamically and acces any specific我想动态创建按钮并访问任何特定的
【发布时间】:2020-06-21 07:44:09
【问题描述】:

我想根据表格中的值显示按钮。之后我需要访问任何按钮并根据按钮的标签进行操作。更具体地说,我有一个包含主题名称的表格,我想显示每个具有主题标签的按钮。当用户单击一个按钮(例如:物理)时,屏幕应仅显示物理测试(MCQ),依此类推:

下面是我的代码:

<button id="subj" onclick="showSubjects()">Start Test </button>
<div id="subjects" style="display: none;">
<form method='POST'>
<?php include_once('connect.php'); 
$query = "select distinct subject from subjects order by subject 
desc ";
$result = mysqli_query($conn,$query);
while($row=mysqli_fetch_array($result)){
        $subjectname = $row['subject'];?>
        <input type="submit" id = "sub" name="sub" 
            value='<?php echo $subjectname; ?>'> 
     <?php } ?>
</form>
</div>
<?php
if(isset($_POST['sub'])){echo $subjectname; } else {echo 
"Nothing";}
?>
</body>
<script type="text/javascript">
function showSubjects(){
document.getElementById("subjects").style.display = "block";}
function showTest(){
document.getElementById("tests").style.display = "block";
} </script>

这显示了 3 个按钮:物理化学生物学

当用户点击这些按钮中的任何一个时,它会将其作为最后一个按钮的值,即 BIOLOGY。

我怎样才能修改它,如果用户点击化学它应该显示“点击化学按钮”等等

【问题讨论】:

    标签: php button dynamic


    【解决方案1】:

    唯一会根据提交的表单更改的是 $_POST 数组。其他变量,如 $subject,无论用户做什么都是一样的; PHP 不会猜测你想要它们是什么。

    如果用户按下任何按钮,您已经进行了逻辑检查:

    if(isset($_POST['sub'])){ ... }
    

    确定他们按下了哪个按钮只是查看同一个变量的问题:

    echo $_POST['sub'];
    

    您添加的任何其他表单控件也是如此 - 用户的选择将在 $_POST 中结束,您可以从那里读取它们。

    还值得记住的是,显示表单的逻辑不需要与处理提交的表单的逻辑在同一个地方,所以事实上这些按钮是动态生成的,不会影响您读取提交的数据的方式。您甚至无法保证用户使用了您的表单,他们可以自己编写表单并将其提交到您的服务器,或者使用浏览器的调试工具对其进行编辑。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多