【问题标题】:PHP mulitiple checkboxesPHP 多个复选框
【发布时间】:2013-06-03 21:44:49
【问题描述】:

我被困在一个脚本上,需要另一双眼睛来看看我是否遗漏了什么。剧本是给书店的。当输入一个学生编号并搜索该学生时,会显示他应该为每个科目获得的书籍。学生、课程和书籍数据来自 MySQL 数据库。

这一切都是用这个脚本完成的:

<?php
    if (isset($_POST['submit'])){
           $btnClick = $_POST['submit'];

           switch($btnClick){
              case "Logout" :
                    session_destroy();
                    header("location:index.php");
              break;
              case "Search" :
                  $Validate = $_POST['txtStud'] ;
                  $StudNr = ValidateTxt($Validate);
                  $showStud =  findStud($StudNr);
                  $cid = $showStud[4];
                  $showBooks = findBooks($cid);
                   echo "<form action='issue_book.php' method='post'>";;
                   echo "<table class='table3'>";
                   echo "<tr>";
                   echo "<td>" . $showStud[0] . " " . $showStud[1] . " " . $showStud[2] ."</td>";
                   echo "</tr>";
                   echo "<tr><td></td><td>" . $showStud[3] . "</td></tr>";
                   $array_count = count($showBooks);
                   $num = 0;
                        while ($num != $array_count) {
                           $bookNum = $showBooks[$num]['bid'];
                           echo $bookNum . "<br>";
                           echo "<tr><td>" . $showBooks[$num]['bid'] . "</td>" . "<td>" . $showBooks[$num]['bname'] . "</td>" ;
                           echo "<td><input type='checkbox' name='booknum[]' value='<?php echo $bookNum; ?>'></td></tr>";
                            $num++;
                        }
                   echo "</table>";
                   echo "<br>";
                   echo "<table class = 'table3'>";
                   echo "<tr><td></td><td><input type='submit' name='submit' value='Issue'></td>
                        <td><input type='submit' name='submit' value='Clear'></td></tr>";
                   echo "</form>";
             break;
             case "Issue": 

                 $mybooks = $_POST['booknum'];
                  $h = count($mybooks);
                  echo $h . "<br>";
                  print_r ($mybooks);

             break;
      }
}
?>

在动态创建数据的底部有 2 个按钮。当我点击问题按钮时,我会看到这些数据。

这来自此刻在脚本中的代码。我想将数据从这里发送到数据库。

Array ( [0] => [1] => [2] => )

一个空数组??不确定我为每个复选框分配的名称发生了什么变化??

我试图根据这个论坛帖子Check box link调整我的脚本

我不确定我错过了什么。

【问题讨论】:

  • 退后一步。查看您正在生成的 HTML。那是您期望的 HTML 吗?如果没有,请告诉我们,不要担心提交的数据。如果是,请向我们展示,不要担心 PHP 会生成它。
  • 选中一些复选框会得到什么输出?
  • 它们是复选框元素。如果我没记错的话,PHP 上的复选框在提交时出现on,在未选中时为空。检查这个。
  • @Jim 即使我选中了一些框,我最终也会得到上述输出。
  • @昆汀。生成的 HTML 是我正在寻找的,我被困在它没有像我想象的那样工作。

标签: php checkbox


【解决方案1】:

这是因为这里有语法错误

echo "<td><input type='checkbox' name='booknum[]' value='<?php echo $bookNum; ?>'></td></tr>";
                                                         ^php tags are opened ^ 

您已经在 php 标签内打印表格,无法打开其他标签

value='<?php echo $bookNum; ?>

这就是为什么您的数组的值为空但键存在的原因。你只需要连接

echo "<td><input type='checkbox' name='booknum[]' value='".$bookNum."'></td></tr>";

【讨论】:

  • 你太棒了!!!我已经盯着这个剧本看了一天的大部分时间,却错过了!!太感谢了!!现在效果很好!!!
  • @StBlade 不客气,伙计。如果答案是正确的,请不要忘记接受它以帮助将来遇到类似问题的人
  • 它现在给出了我一直在寻找的答案!!再次感谢!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-28
  • 2012-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 2013-06-06
相关资源
最近更新 更多