
本文介绍了一种在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 字段的值来决定是否显示该行。
| <input type="checkbox" value="" name="chk[]"> | <input type="hidden" name="Inum[]" value=""> | <input type="hidden" name="Sname[]" value=""> | <input type="hidden" name="Cname[]" value=""> | <input type="hidden" name="amount[]" value=""> | <input type="hidden" name="iban[]" value=""> | <input type="hidden" name="bic[]" value=""> |
后端 PHP 处理 (companies.php)
在 companies.php 文件中,当处理完表单提交并生成 XML 文件后,更新数据库中对应行的 checkbox 字段。
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,如果是,则提交表单。
总结
通过以上步骤,就可以实现提交后隐藏表格中已选中的行的功能。核心在于数据库字段的更新和前端的条件判断显示。务必注意代码中的安全性和错误处理,并根据实际情况进行调整。
以上就是如何在提交后隐藏表格中已选中的行的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1322637.html
微信扫一扫
支付宝扫一扫