蓝极冰焰 2024-05-25 21:52 采纳率: 35.3%
浏览 27
已结题

关于多次提交POST数据后,无法获取到POST数据参数的问题

我这个代码中,下拉菜单的数据是可以获取和提交的,没有问题,但是最后选择schedule下拉菜单的时候,无法获取到station、group、event、schedule四个数据的参数,无法进行最终的表单数据的调取,希望大家帮我检查一下!感谢!


<?php 
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require_once './connections/games.php';
session_start();

if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true && isset($_SESSION['username'])) {
    $username = $_SESSION['username'];

    $sql = "SELECT username,realname FROM judges WHERE username = ?";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$username]);
    $username_row = $stmt->fetch(PDO::FETCH_ASSOC);

    if ($username_row) {
        $username = $username_row['username'];
        $realname =$username_row['realname'];

        $stationResults = array();
        $stmt = $pdo->prepare("SELECT DISTINCT station,name FROM m_date WHERE `now` = ? AND judge_jl = ? ");
        $stmt->execute(array('待开赛',$username));
        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        $stationResults[] = $row['station'];
        $station = $row['station'];
        $m_name = $row['name'];
        }

    } else {
        echo "没有找到匹配的用户信息。";
    }
} else {
    header("Location: login.php");
    exit;
}
// 根据station获取唯一的group值
if (isset($_POST['station'])) {
    $station = $_POST['station'];
    $groupResults = array();
    $stmt = $pdo->prepare("SELECT DISTINCT `group` FROM m_order WHERE station = ?");
    $stmt->execute(array($station));
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        $groupResults[] = $row['group'];
    }
    echo json_encode($groupResults);
    exit;
}

// 根据group获取唯一的event值
if (isset($_POST['group'])) {
    $group = $_POST['group'];
    $eventResults = array();
    $stmt = $pdo->prepare("SELECT DISTINCT event FROM m_order WHERE `group` = ?");
    $stmt->execute(array($group));
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        $eventResults[] = $row['event'];
    }
    echo json_encode($eventResults);
    exit;
}

// 根据event获取唯一的schedule值
if (isset($_POST['event'])) {
    $event = $_POST['event'];
    $eventResults = array();
    $stmt = $pdo->prepare("SELECT DISTINCT schedule FROM m_order WHERE `event` = ?");
    $stmt->execute(array($event));
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        $scheduleResults[] = $row['schedule'];
    }
    echo json_encode($scheduleResults);
    exit;
}

?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="../css/j_center.css">
<title>检录裁判 | 检录操作 | 执裁操作中心</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    $(document).ready(function() {
        // 初始化stationSelect
        $('#stationSelect').append(
                '<option value="">选择站次</option>');
        <?php foreach ($stationResults as $station): ?>  
            $('#stationSelect').append(
                '<option value="<?php echo htmlspecialchars($station); ?>"><?php echo htmlspecialchars($station); ?></option>'); 
        <?php endforeach; ?>   

        // 当station下拉菜单改变时
        $('#stationSelect').change(function() {
            var station = $(this).val(); // 获取选中的station值
                $.ajax({
                    url: 'jl-a.php', // PHP脚本的URL
                    type: 'POST',
                    data: { station: station }, // 发送的数据
                    dataType: 'json',
                    success: function(groupResults) {
                        // 假设#groupSelect是group下拉菜单的ID
                        $('#groupSelect').empty(); // 清空下拉菜单
                        $('#groupSelect').append('<option value="">选择组别</option>'); // 添加提示选项
                        $.each(groupResults, function(index, group) {
                            $('#groupSelect').append('<option value="' + group + '">' + group + '</option>');
                        });
                        // 触发group下拉菜单的change事件(如果需要初始化其他下拉菜单)
                        $('#groupSelect').trigger('change');
                    },
                    error: function(jqXHR, textStatus, errorThrown) {
                        console.error("AJAX Error: " + textStatus + ' - ' + errorThrown);
                    }
                });
        });

        // 当group下拉菜单改变时
        $('#groupSelect').change(function() {
            var group = $(this).val(); // 获取选中的group值
                $.ajax({
                    url: 'jl-a.php', // PHP脚本的URL
                    type: 'POST',
                    data: { group: group }, // 发送的数据
                    dataType: 'json',
                    success: function(eventResults) {
                        // 假设#eventSelect是event下拉菜单的ID
                        $('#eventSelect').empty(); // 清空下拉菜单
                        $('#eventSelect').append('<option value="">选择项目</option>'); // 添加提示选项
                        $.each(eventResults, function(index, event) {
                            $('#eventSelect').append('<option value="' + event + '">' + event + '</option>');
                        });
                    },
                    error: function(jqXHR, textStatus, errorThrown) {
                        console.error("AJAX Error: " + textStatus + ' - ' + errorThrown);
                    }
                });
        
        })

         // 当event下拉菜单改变时
         $('#eventSelect').change(function() {
            var event = $(this).val(); // 获取选中的event值
                $.ajax({
                    url: 'jl-a.php', // PHP脚本的URL
                    type: 'POST',
                    data: { event: event }, // 发送的数据
                    dataType: 'json',
                    success: function(scheduleResults) {
                        // 假设#scheduleSelect是schedule下拉菜单的ID
                        $('#scheduleSelect').empty(); // 清空下拉菜单
                        $('#scheduleSelect').append('<option value="">选择赛程</option>'); // 添加提示选项
                        $.each(scheduleResults, function(index, schedule) {
                            $('#scheduleSelect').append('<option value="' + schedule + '">' + schedule + '</option>');
                        });
                    },
                    error: function(jqXHR, textStatus, errorThrown) {
                        console.error("AJAX Error: " + textStatus + ' - ' + errorThrown);
                    }
                });
        });

        // 当schedule下拉菜单改变时
        $('#scheduleSelect').change(function() {
            var station = $('#stationSelect').val(); // 获取选中的station值
            var group = $('#groupSelect').val(); // 获取选中的group值
            var event = $('#eventSelect').val(); // 获取选中的event值
            var schedule = $('#scheduleSelect').val(); // 获取选中的schedule值
                $.ajax({
                    url: 'jl-a.php', // PHP脚本的URL(确保这个URL可以处理group参数)
                    type: 'POST',    
                    data: { 
                        station: $('#stationSelect').val(),
                        group: $('#groupSelect').val(),
                        event: $('#eventSelect').val(),
                        schedule: $('#scheduleSelect').val() 
                    }, // 发送的数据
                    dataType: 'json',
                    success: function(response) {
                        // 处理PHP脚本返回的响应数据
                        console.log(response);
                        // 根据返回的数据更新页面上的内容或其他操作
                    },
                    error: function(jqXHR, textStatus, errorThrown) {
                        console.error("AJAX Error: " + textStatus + ' - ' + errorThrown);
                    }
                });
        });
    });
    </script>  
</head>

<body>
    <div class="sl">
        <select id="stationSelect"></select>
        <select id="groupSelect"></select>
        <select id="eventSelect"></select>
        <select id="scheduleSelect"></select>
        </form>
    </div>
    
    <?php
    $stations = $_POST['station'] ?? null;
    $groups = $_POST['group'] ?? null;
    $events = $_POST['event'] ?? null;
    $schedules = $_POST['schedule'] ?? null; 

    if (empty($schedule)) { echo "null";}

    $query = "SELECT * FROM m_order WHERE station = ? AND `group` = ? AND `event` = ? AND `schedule` = ?";
    $stmt = $pdo->prepare($query);
    $stmt->execute([$stations, $groups, $events, $schedules]);
    $order = $stmt->fetchAll(PDO::FETCH_ASSOC);
    ?>

    <div style="border-radius: 20px; background-color:#F8F8F8;">
    <table style="font-family: inherit;color:#555">
    <thead>
        <tr align="center" style="font-weight:bold;font-size:12px;">
         <th>顺序<br>Order</th>
         <th>编号<br>Bib</th>
         <th>姓名<br>Name</th>
         <th>代表队<br>Delegation</th>
         <th>备注<br>Remark</th>
         </tr>
    </thead>
    <tbody>
         <?php
        foreach ($order as $row):
        ?>
        <form method="post" action="jl-a.php" style="margin-bottom: 10px;">
         <tr align="center" style="font-weight:bold;font-size:10px;">
         <td><?php echo htmlspecialchars($row['order']);?></td>
         <td><?php echo htmlspecialchars($row['bib']); ?></td>
         <td><?php echo htmlspecialchars($row['name']); ?></td>
         <td><?php echo htmlspecialchars($row['Delegation']); ?></td>
         <td><?php echo htmlspecialchars($row['remark']); ?></td>
         </tr>
         </form>
         <?php
        endforeach;
        ?>
    </tbody>
    </table>
    </div>
</body>
</html>

  • 写回答

28条回答 默认 最新

  • 专家-百锦再@新空间代码工作室 全栈领域优质创作者 2024-05-25 21:55
    关注

    Gpt辅助回答,我来为你把关

    在您的代码中,问题可能出在下拉菜单change事件的处理上。您尝试通过change事件来获取选中的station、group、event、schedule的数值,并通过AJAX请求将这些数值发送到后端处理。然而,您在处理schedule下拉菜单的change事件时,没有正确获取选中的值并发送到后端。

    建议您在schedule下拉菜单的change事件处理中,确保正确获取选中的station、group、event、schedule的值,并将它们发送到后端处理。您可以在控制台或调试工具中打印出这些数值,以确保它们被正确获取。

    另外,您也可以检查一下后端代码中,是否正确处理了从前端发送过来的station、group、event、schedule的数值,并返回了正确的结果。

    希望以上建议对您有帮助,如果还有问题请继续反馈。


    有问题你别着急,评论留言都可以,看到马上就回复,尽量及时补充齐
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月2日
  • 创建了问题 5月25日

悬赏问题

  • ¥15 电脑键盘实现触摸功能
  • ¥25 matlab无法将表达式转换为双数组怎么解决?
  • ¥15 单片机汇编语言相关程序
  • ¥20 家用射频美容仪技术规格
  • ¥15 大家帮我看看为什么错了
  • ¥15 unity互动琴弦抖动效果
  • ¥15 做了个的二极管反向饱和电流测量电路,但是测试达不到效果
  • ¥15 nginx无证书访问https失败
  • ¥15 树莓派启动AP热点传入数据
  • ¥15 multisim中关于74ls192n和DSWPK开关的问题(相关搜索:计数器)