【问题标题】:checkbox value fetch in foreach loop not workingforeach 循环中的复选框值获取不起作用
【发布时间】:2018-09-01 18:23:52
【问题描述】:

使用下面给定的代码,我试图从 MySQL 数据库中获取复选框的数据,但它不起作用并且只获取最后一个选中的值。

var_dump($checked); 给出正确的结果。

PHP 脚本

$group_id = $_POST['group_id'];
$team_id = $_POST['team_id'];
if(!empty($_POST['team_id'])) {
        foreach($_POST['team_id'] as $checked) {
            // var_dump($checked);
                $sql = $db->prepare("SELECT a.team, a.player, a.result, a.note, b.category FROM teams a INNER JOIN  groups b ON a.team_id = b.id WHERE a.team_id = :team_id_id AND a.group_id = :group_id ");
                $sql->execute(array(':team_id' => $checked, ':group_id' => $group_id));
        }
        while($row = $sql->fetch(PDO::FETCH_ASSOC) ) {
            $row1[] = $row;
        }

}

【问题讨论】:

  • 你能在你定义$row1的地方加上你读出来的​​代码部分吗?我猜你会想要将while 循环移动到foreach 中。现在$sql 变量可能未在您的while 语句中定义
  • @jrswgtr 我是通过ajax获取数据的,分享一堆代码对我来说有点困难。
  • 那我怀疑我们能不能帮到你
  • @jrswgtr 好的!我正在努力。
  • 因为在你的 foreach 中发送最后一个值。你在 foreach 中尝试过 while 循环吗?

标签: php mysql checkbox foreach


【解决方案1】:

foreach loop 中使用 while 循环,因为它会导致 id 问题

$group_id = $_POST['group_id'];
$team_id = $_POST['team_id'];
if(!empty($_POST['team_id'])) {
    foreach($_POST['team_id'] as $checked) {
            $sql = $db->prepare("SELECT a.team, a.player, a.result, a.note, b.category FROM teams a INNER JOIN  groups b ON a.team_id = b.id WHERE a.team_id = :team_id_id AND a.group_id = :group_id ");
            $sql->execute(array(':team_id' => $checked, ':group_id' => $group_id));
    while($row = $sql->fetch(PDO::FETCH_ASSOC) ) {
        $row1[] = $row;
    }
}
}

【讨论】:

    猜你喜欢
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-09
    • 2020-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多