我被困在一个剧本上,需要另一双眼睛,看看我是否遗漏了一些东西。该剧本适用于书店。当学生编号被投入并搜索时,学生将显示他想要为每个科目获得的书籍。学生,课程和书籍数据来自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
调整我的脚本我不确定我错过了什么。
答案 0 :(得分:5)
这是因为你在这里有语法错误
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>";