You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用按钮将PHP多行数据的Class变量POST至viewmembers.php

解决方法

方法1:为每行数据生成独立POST表单

直接在循环里给每个班级生成包含隐藏字段的表单,点击按钮时提交对应班级的Class值:

<?php
session_start();
include_once('connection.php');

$stmt = $conn->prepare("SELECT * FROM class WHERE Username = :Username");
$stmt->bindParam(':Username', $username);
$stmt->execute();  

while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
    echo "Class Code: ".$row["Class"]." <br> Username: " .$row["Username"]." <br> Subject: ".$row["SubjectName"]."<br>";

    // 生成独立表单
    echo '<form action="viewmembers.php" method="POST">';
    // 隐藏字段存储当前行的Class值
    echo '<input type="hidden" name="class_code" value="'.$row["Class"].'">';
    echo '<button type="submit">View Members</button>';
    echo '</form><br><br>';
}
?>

在viewmembers.php中接收数据:

<?php
if(isset($_POST['class_code'])){
    $classCode = $_POST['class_code'];
    // 此处使用$classCode查询对应班级的成员数据即可
}
?>

方法2:用JavaScript触发POST请求(无表单显示)

如果不想显示表单标签,可给按钮绑定点击事件,通过JS动态创建表单并提交:

<?php
session_start();
include_once('connection.php');

$stmt = $conn->prepare("SELECT * FROM class WHERE Username = :Username");
$stmt->bindParam(':Username', $username);
$stmt->execute();  

while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
    echo "Class Code: ".$row["Class"]." <br> Username: " .$row["Username"]." <br> Subject: ".$row["SubjectName"]."<br>";

    // 按钮携带Class数据,点击触发JS提交(转义特殊字符避免语法错误)
    $escapedClass = htmlspecialchars($row["Class"], ENT_QUOTES);
    echo '<button onclick="postClass(\''.$escapedClass.'\')">View Members</button><br><br>';
}
?>

<script>
function postClass(classCode) {
    // 创建临时表单元素
    const form = document.createElement('form');
    form.method = 'POST';
    form.action = 'viewmembers.php';

    // 创建存储Class值的隐藏字段
    const input = document.createElement('input');
    input.type = 'hidden';
    input.name = 'class_code';
    input.value = classCode;

    form.appendChild(input);
    document.body.appendChild(form);
    // 提交表单
    form.submit();
}
</script>

接收数据的逻辑和方法1一致,通过$_POST['class_code']获取对应班级的值。

内容的提问来源于stack exchange,提问作者Cruisey123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 18:33:35