作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个查询来显示数据库中电子书表的所有记录。
我将其显示在带有第一列复选框的表格中。
我正在尝试保存表格中所选复选框中的行,宽度为学校名称,但我不知道。
我只是 php 的初学者,非常感谢任何帮助。这是我的代码:
HTML 代码:
$result1 = mysql_query("SELECT * FROM school GROUP BY SCHOOL_NAME");
while($row1=mysql_fetch_array($result1)) {
?>
<option><?php echo $row1['SCHOOL_NAME'];?></option>
<?php } ?>
</select>
<table class="table table-striped table-hover table-bordered datatable">
<thead style="background: #a83535; color: black;">
<tr>
<th style="width: 50px;"></th>
<th style="color: #3b3b3b;">Ebook Title</th>
<th style="color: #3b3b3b;">Category</th>
<th style="color: #3b3b3b;">File Name</th>
</tr>
</thead>
<tbody>
<?php
$result = mysql_query("SELECT * from ebooks ORDER BY EBOOK_TITLE");
$count = mysql_num_rows($result);
while($row=mysql_fetch_array($result)) {
?>
<tr>
<td>
<center><input type="checkbox" name="check[]" ></center>
</td>
<td><input type="" name="ebookname[]" value="<?php echo $row['EBOOK_TITLE'];?>"></label></td>
<td><input type="" name="ebookcategory[]" value="<?php echo $row['EBOOK_CATEGORY'];?>"></label></td>
<td><input type="label" name="ebookfilename[]" value="<?php echo $row['EBOOK_FILENAME'];?>"></label></td>
</tr>
<?php } //end of while loop ?>
</tbody>
</table>
<button type="submit" class="btn btn-hg btn-primary" name="AddEbooks">Submit</button>
我想将复选框选中的行保存到数据库:
school_management
ID_NUMBER
, SCHOOL
, EBOOK
, FILE_NAME
, DATE_ASSIGN
Values (from the HTML table to database): ('','$school_ebook','$ebookname','$ebookfilename','')
这是屏幕截图:
最佳答案
首先,您需要为复选框分配一个 ID 号,以便可以区分每条记录。在这里使用 ID_NUMBER 是理想的选择。在当前显示复选框的脚本中,您的行显示以下内容:
<center><input type="checkbox" name="check[]" ></center>
名称中应包含这样的 ID_NUMBER。此外,应为该复选框分配一个值,以便我们稍后进行验证。
<center><input type="checkbox" name="check[<?php echo $row['ID_NUMBER'];?>]" value="1"></center>
现在您可以继续设置在提交表单时触发的内容。您基本上可以循环遍历每条记录,并根据“check[ID_NUMBER]”复选框进行检查,看看该值是否为 1。如果该值为 1,则该记录已被检查以保存,然后您可以继续保存该记录。
如何处理表单取决于您 - 您可以使用 AJAX 来避免重新加载整个页面,或者您可以执行一个简单的表单 action="page_name_here.php"并在那里处理提交。如果您在不使用 AJAX 的情况下进行简单的表单发布,可能会是这样的 -
当前页面表单标签:
<form name="" action="page_name_here.php" method="POST">
如果您想使用 school_ebook 变量,您需要为 school_ebook 的选择选项分配一个值:
<option value="<?php echo $row1['SCHOOL_NAME']'?>">
page_name_here.php:
<?php
/* Get the school name */
$school_ebook=$_POST["school_ebook"];
/* Query your books DB to get the records */
$result=mysql_query("SELECT * from ebooks ORDER BY EBOOK_TITLE");
$count=mysql_num_rows($result);
while($row=mysql_fetch_array($result)) {
$bookID=$row['ID_NUMBER'];
/* Get the Book ID and now we have to fetch from $_POST the value from the form */
if (array_key_exists($bookID, $_POST["check"])) {
$ischecked=$_POST["check"][$bookID];
/* See if this has a value of 1. If it does, it means it has been checked */
if ($ischecked==1) {
/* It is checked, so now in this area you can finish the code to retrieve the data from the row and save it however you like */
}
}
}
?>
完成插入等操作后,它应该可以满足您的需要。
关于php - 将复选框选定的行保存到php中的数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25071565/
我是一名优秀的程序员,十分优秀!