0

0

如何在提交后隐藏表格中已选中的行

霞舞

霞舞

发布时间:2025-09-28 16:19:01

|

534人浏览过

|

来源于php中文网

原创

如何在提交后隐藏表格中已选中的行

本文介绍了一种在PHP和JavaScript环境中,提交表单后隐藏已选中表格行的方法,而无需从数据库中删除数据。通过在数据库中添加一个布尔类型的字段,并在提交时更新该字段,可以实现选择行的隐藏功能。同时,在前端通过PHP条件判断来控制行的显示,从而达到预期的效果。

解决方案概述

核心思路是在数据库表中增加一个用于标记行是否已被选中的字段(例如 checkbox),默认值为 0 或 NULL。当用户提交表单后,通过 PHP 更新数据库中对应行的该字段值为 1。在生成表格时,使用 PHP 的条件语句判断该字段的值,如果为 1,则不显示该行。

数据库表结构修改

首先,需要在数据库表中添加一个布尔类型的字段,用于标识该行是否已被选中并提交。

ALTER TABLE your_table_name ADD COLUMN checkbox BOOLEAN DEFAULT 0;

将 your_table_name 替换为你的实际表名。 BOOLEAN 类型根据你的数据库系统可能需要调整,例如 MySQL 可以使用 TINYINT(1)。

前端表格的修改

在生成表格的 PHP 代码中,添加条件判断,根据 checkbox 字段的值来决定是否显示该行。

<form action="companies.php" method="post" onsubmit='checkform()'>
    <table border=2 style="width:1200px;">
        <?php
        // 假设 $ff 是从数据库查询得到的一行数据
        while ($ff = mysqli_fetch_assoc($result)) {
            if($ff['checkbox'] == 0){ // 仅显示 checkbox 字段为 0 的行
        ?>
        <tr>
            <td class="ttd"><input type="checkbox" value="<?php echo $ff['ID']; ?>" name="chk[]"></td>
            <td class="ttd"><?php echo htmlentities($ff['ID']); ?></td>
            <td class="ttd"><?php echo htmlentities($ff['Invoice_number']); ?>
                <input type="hidden" name="Inum[<?php echo $ff['ID']; ?>]" value="<?php echo $ff['Invoice_number']; ?>">
            </td>
            <td class="ttd"><?php echo htmlentities($ff['Invoice_date']); ?></td>
            <td class="ttd"><?php echo htmlentities($ff['Month']); ?></td>
            <td class="ttd"><?php echo htmlentities($ff['Space_name']); ?>
                <input type="hidden" name="Sname[<?php echo $ff['ID']; ?>]" value="<?php echo $ff['Space_name']; ?>">
            </td>
            <td class="ttd"><?php echo htmlentities($ff['Company_Name']); ?>
                <input type="hidden" name="Cname[<?php echo $ff['ID']; ?>]" value="<?php echo $ff['Company_Name']; ?>">
            </td>
            <td class="ttd"><?php echo htmlentities($ff['Amount']); ?>
                <input type="hidden" name="amount[<?php echo $ff['ID']; ?>]" value="<?php echo $ff['Amount']; ?>">
            </td>
            <td class="ttd" style="width:200px;"><?php echo htmlentities($x); ?>
                <input type="hidden" name="iban[<?php echo $ff['ID']; ?>]" value="<?php echo $ff['Iban']; ?>">
            </td>
            <td class="ttd"><?php echo htmlentities($ff['BIC']); ?>
                <input type="hidden" name="bic[<?php echo $ff['ID']; ?>]" value="<?php echo $ff['BIC']; ?>">
            </td>
        </tr>
        <?php
            } // end if
        } // end while
        ?>
    </table>
    <button type="submit" name="submit" value="submit" onclick='sendit()'>submit</button>
</form>

后端 PHP 处理 (companies.php)

在 companies.php 文件中,当处理完表单提交并生成 XML 文件后,更新数据库中对应行的 checkbox 字段。

听脑AI
听脑AI

听脑AI语音,一款专注于音视频内容的工作学习助手,为用户提供便捷的音视频内容记录、整理与分析功能。

下载
if ($_POST['submit']){
    #### XML file create
    ####..... at the End, when all xml attribute to be created ######

    // 假设 $invoice_number 是当前处理的 invoice number
    $invoice_number = $_POST['Inum'][$ff['ID']]; // 从POST获取发票号码

    $query = "UPDATE your_table_name SET checkbox = 1 WHERE Invoice_number = '{$invoice_number}'";
    $result = mysqli_query($connection, $query);

    if($result && mysqli_affected_rows($connection)>= 0){
        $xml->formatOutput = true;
        $xml->save('../includes/xml/'.$filename) or die('XML Create Error') ;
        redirect_to("manage_content.php");
    }
}

注意事项:

  • 确保 $connection 是有效的数据库连接。
  • 将 your_table_name 替换为你的实际表名。
  • 确保 $invoice_number 正确获取了当前处理行的发票号码。 根据你的实际POST数据结构调整获取方式。
  • 错误处理:添加更完善的错误处理机制,例如记录错误日志。
  • SQL 注入:使用预处理语句(Prepared Statements)来防止 SQL 注入攻击,特别是当 $invoice_number 来自用户输入时。

JavaScript 代码分析

提供的 JavaScript 代码主要用于控制表单提交和复制文本到剪贴板,与隐藏表格行的核心逻辑关系不大。以下是代码的简要分析:

  • document.forms[0].addEventListener("submit", function(event){...}): 阻止表单的默认提交行为,除非 send 变量为 1。
  • myFunction(el): 将指定元素的上一个兄弟元素(隐藏的 input 框)的内容复制到剪贴板。
  • sendit(): 设置 send 变量为 1,允许表单提交。
  • checkform(): 检查 send 变量是否为 1,如果是,则提交表单。

总结

通过以上步骤,就可以实现提交后隐藏表格中已选中的行的功能。核心在于数据库字段的更新和前端的条件判断显示。务必注意代码中的安全性和错误处理,并根据实际情况进行调整。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

1135

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

340

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

381

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

2194

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

380

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

1703

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

586

2024.04.29

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

440

2024.04.29

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

26

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 2.6万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 850人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号