通过复选框将所选行保存到php中的数据库

时间:2014-08-01 01:36:54

标签: php mysql forms

我有一个查询来显示数据库中ebooks表的所有记录。

我将它显示在一个表格中,其中包含第一列的复选框。

我试图将表格宽度中所选复选框的行保存为学校名称,但我不知道。

我只是php的初学者,感谢任何帮助。这是我的代码:

HTML code:

         

$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_NUMBERSCHOOLEBOOKFILE_NAMEDATE_ASSIGN
  • Values (from the HTML table to database): ('','$school_ebook','$ebookname','$ebookfilename','')

以下是截图:

1 个答案:

答案 0 :(得分:1)

首先,您需要为复选框指定一个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> 

现在,您可以继续设置在提交表单时触发的内容。您实际上可以循环遍历每个记录并在“检查[ID_NUMBER]”复选框中检查它是否为1.如果值为1,则已检查记录以保存,然后您可以继续保存记录。

您希望如何处理表单取决于您 - 您可以执行AJAX以避免重新加载整个页面,或者您可以执行简单的表单操作=“page_name_here.php”并在那里处理提交。如果你在没有AJAX的情况下做一个简单的表单帖子,它可能是这样的 -

当前页面表单标记:

<form name="" action="page_name_here.php" method="POST">

如果你想使用school_ebook var,你需要为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 */
            }
        }
    }
?>

使用插页等完成后,它应该可以满足您的需求。