从 HTML 表中检索过滤后的数据并将其格式化为数组

2023-12-02

我一直在 PHP 系统中开发一个函数,我可以在其中过滤记录,然后将其导出到具有使用 PHPSpreadSheet 模板的 Excel。我的问题是我不知道如何检索上面标题中所述的过滤记录。我想我的代码中遗漏了一些东西。这是我将记录从数据库提取到表中的代码。

<?php
    $conn = mysqli_connect("localhost", "root", "", "db_ims");
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT * FROM tbl_par";
$result = mysqli_query($conn, $sql);

      echo "<table id='myTable'>";
      echo "<thead><tr><th>Article</th>
      <th>Description</th>
      <th>Property Number</th>
      </tr></thead>";
      echo "<tbody>";
      while ($row = mysqli_fetch_assoc($result)) {
      echo "<tr>";
      echo "<td>" . $row['article'] . "</td>";
      echo "<td>" . $row['description'] . "</td>";
      echo "<td>" . $row['propertyNumber'] . "</td>";
      echo "</tr>";
      }
      echo "</tbody>";
      echo "</table>";

// Close the database connection
mysqli_close($conn);
?>
    <form action="" method="POST">
    <input type="text" id="myInput" onkeyup="filterTable()" placeholder="Search...">
    <input type="submit" id="generate" name="generate" value="Submit">
    </form>

这是我过滤记录的代码:

<script>
function filterTable() {
  // Declare variables
  var input, filter, table, tr, td, i, txtValue;
  input = document.getElementById("myInput");
  filter = input.value.toUpperCase();
  table = document.getElementById("myTable");
  tr = table.getElementsByTagName("tr");

  // Loop through all table rows, and hide those who don't match the search query
  for (i = 0; i < tr.length; i++) {
    td = tr[i].getElementsByTagName("td");
    for (var j = 0; j < td.length; j++) {
      txtValue = td[j].textContent || td[j].innerText;
      if (txtValue.toUpperCase().indexOf(filter) > -1) {
        tr[i].style.display = "";
        break;
      } else {
        tr[i].style.display = "none";
      }
    }
  }
}
</script>

最后,这是使用 PHPSpreadSheet 将过滤后的表导出到 Excel 的代码:

<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;

if (isset($_POST['generate'])) {


$spreadsheet = IOFactory::load('Template.xls');

//This is the part where I don't know what to put.
$data = array();


$worksheet = $spreadsheet->getActiveSheet();
$row = 10; // Start inserting data from row 10
foreach ($data as $item) {
    $worksheet->setCellValue('A'.$row, $item['article']);
    $worksheet->setCellValue('B'.$row, $item['description']);
    $worksheet->setCellValue('C'.$row, $item['propertyNumber']);
    // ...
    $row++;
}


$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('exported_file.xlsx');
}
?>

我尝试了所有我知道的方法,但仍然没有得到我预期的结果。


如果您想提交需要回显表单内表格的值并需要提交一些内容(例如隐藏字段),那么您可以将禁用添加到您不想提交的字段

const hide = txtValue.toUpperCase().indexOf(filter) === -1 : true : false;
tr[i].style.display = hide ? "none" : "";
tr[i].querySelector("[type=hidden]").disabled = hide;

我强烈建议你在这里使用 AJAX。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 HTML 表中检索过滤后的数据并将其格式化为数组 的相关文章

  • 向对象添加元素

    我需要填充一个 json 文件 现在我有这样的东西 element id 10 quantity 1 我需要添加另一个 元素 我的第一步是使用该 json 将该 json 放入对象类型中cart JSON parse 现在我需要添加新元素
  • 在 JavaScript 中比较表单中的两个数字

    当我尝试比较不同的数字时 数字发生变化 但文本部分保持不变 这只发生在较大 较小的情况下 而不会发生在 NaN 或相等的情况下 这是我的代码 function check var a document getElementById a va
  • Telegram 授权无默认按钮

    使用 Telegram 第 3 方授权的唯一有记录的方法是使用其提供的脚本https core telegram org widgets login https core telegram org widgets login 这个脚本 正如
  • 显示产品中的类别名称和类别 ID - Laravel

    我已经找到了这个答案 但它对我不起作用 Laravel 按 id 显示类别 https stackoverflow com questions 39222584 laravel displaying categories by id 我无法
  • 点击问题:动态生成的链接不触发点击功能

    下面是两个代码片段 由于某种原因什么也没有发生 但来自同一个 JS 文件的其他 jQuery 函数在带有 UL 的页面上执行得很好 这是在盯着我看吗 ul class paganation li 1 li li a href 2 a li
  • 是否可以从插件扩展 Wordpress XMLRPC 接口?

    是否可以创建一个插件 在激活时向 XMLRPC 接口添加新的 功能 并处理其调用 简而言之 是的 您可以将函数添加为插件或添加到主题的functions php 文件中来处理XMLRPC 调用 您将需要以下部分 function xml a
  • ReactJS:从没有 onChange 事件的 props 中选择默认值?

    所以 我只是想知道我是否绝对需要在 React 中的选择组件上有一个 onChange 事件处理程序 我有一个道具传递我想要选择的选项的默认值 如果我有的话 它就没有问题
  • cmd 和 workbench mysql 查询性能差异

    我有两个问题 正如我的标题 哪一个对于对大量数据运行大型查询更有效 我查看了 MySQL 文档 其中解释了工作台的性能https www mysql com products workbench performance https www
  • Web SQL 数据库 + Javascript 循环

    我正在尝试解决这个问题 但我自己似乎无法解决 我正在使用 Web SQL DB 但无法让循环正常使用它 I use for var i 0 i lt numberofArticles 1 i db transaction function
  • 使用 onBlur 事件上的值更新 React 输入文本字段

    我有以下输入字段 在模糊时 该函数调用服务来更新服务器的输入值 完成后 它会更新输入字段 我怎样才能让它发挥作用 我可以理解为什么它不允许我更改字段 但我能做些什么才能使其工作 我无法使用defaultValue因为我会将这些字段更改为其他
  • 将 JavaScript 引擎嵌入到 .NET 中 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 只是想知道是否有人尝试过将任何 js 引擎嵌入并实际集成到 net 环境中 我可以找到并实际使用 经过L
  • Window 与 Var 声明变量[重复]

    这个问题在这里已经有答案了 可能的重复 JavaScript 中使用 var 和不使用 var 的区别 https stackoverflow com questions 1470488 difference between using v
  • Javascript 选择 onchange='this.form.submit()'

    我有一个带有选择和一些文本输入的表单 我希望在更改选择时提交表单 使用以下方法可以正常工作 onchange this form submit 但是 如果表单还包含提交按钮 则当选择更改时 表单不会提交 我猜有某种冲突 我在这里有什么选择
  • 如何在 angularjs 中修剪()字符串?

    有角度特定的方法吗 如果没有 我应该使用内置的jquery 来做到这一点吗 如果我应该使用内置的jquery 如何在不使用 的情况下访问trim 函数 或者这是必要的 编辑 是的 我知道 str trim 对不起 我需要这个才能在 IE 8
  • 未找到 mysqli 类

    我用过mysqli连接到我的应用程序中的数据库 几天前一直运行良好 突然出现以下错误 致命错误 找不到类 mysqli 我用来连接数据库的行是 link new mysqli localhost uname password scripts
  • 为什么我需要 $(document.body) 来使用 Mootools Element 方法扩展 document.body?

    因此 在尝试让我的应用程序在最新的 IE 上运行后 结果发现 IE 不喜欢以下代码 document body getElement className Firefox 和 Chrome 响应良好 但是document bodyIE 上没有
  • 在声明组件选择器时添加指令 - Angular 7

    我正在学习 Angular 并通过单击按钮动态创建组件 我正在尝试使用 Angular Material 的拖放功能来拖动这些创建的组件以对它们进行排序 我的基本组件 html 中有以下代码 div style margin 20px di
  • MySQL - 连接 a 或 b

    假设我有一个TABLE a其中一个COLUMN data是一个join其他 2 张桌子 TABLE b and TABLE c 因为我想得到一个COLUMN info in b or c 事情是a data将匹配only with b da
  • 使用 React React-router 登录后重定向到主页,并且 usenavigate 不起作用?

    我希望用户在成功登录后重定向到主页 我将用户登录的 api 请求的数据存储在一个名为 currentUser 的变量中 因此如果 currentUser 为 true 它应该重定向到主页 这就是我处理登录请求的方式 export const
  • 使用 jquery 提供附加功能时菜单未正确对齐

    I need to make a mega menu similar to one as show in image below 到目前为止 我已经能够在某种程度上使其发挥作用 例如jsFiddle 在这里 http jsfiddle ne

随机推荐

  • 主窗口 DataContext StackOverflowException

    我知道这可能听起来很疯狂 但为了我的理解 你会如何解释这个设置Window DataContext to MainWindow结果出现此错误 引发了 System StackOverflowException 类型的异常
  • LINQDataSource - 查询多个表?

    我有一个数据库 并且创建了一个 DBML Linq to SQL 文件来表示该数据库 我创建了一个新的 aspx 页面 并在其上放置了 linqdatasource 和 formview 控件 当我配置 linqdatasource 时 它
  • 在代码隐藏的 asp:image 中显示数据表中的图像

    我有一个数据表 它是从 1 行选择语句的结果集中填充的 通过 SQL Server 2008 中的存储过程 它包含一个Image我在其中存储图像的键入列 我有一个asp image在 aspx 页面上进行控件 我想将图像设置为该数据表的相应
  • 如何使用陀螺仪从加速度计仅获取线性加速度?

    我的房间地板上有一辆小型遥控车 为了简单起见 我们假设它沿着 x 轴移动 现在 地板看起来很平坦 但每个表面都有非常微小的凹凸不平 因此 每当汽车不完全平坦时 因为它处于起始位置 或者换句话说 每当汽车有哪怕是最轻微的倾斜时 从加速度计获得
  • 多选列表框

    我的表单上有一个列表框 它可以很好地满足我想要做的事情 我想要编辑表单上的项目 这意味着填充列表框 然后选择相关项目 我的列表框包含项目尺寸列表 我想选择属于正在编辑的项目的尺寸 请有人给我一些指点 I tried me lstItemSi
  • 拟合 RNN LSTM 模型时出错

    我正在尝试使用以下代码创建用于二元分类的 RNN LSTM 模型 alldataset np loadtxt FinalKNEEALL txt delimiter num classes 2 num of sam alldataset sh
  • Spring 捕获index.html 的所有路由

    我正在为基于react的单页应用程序开发一个spring后端 其中我使用react router进行客户端路由 除了index html页面之外 后端还提供路径上的数据 api 为了提供我的index htmlsrc main resour
  • 如何处理 UWP 按下的后退按钮

    我曾经在 Windows Phone 8 1 XAML 中使用硬件按钮 API 但是 在 UWP 中 某些设备没有后退按钮 如何适应新的应用模式 稍微解释一下答案 你可以使用系统导航管理器 of Windows UI Core名称空间 对于
  • .NET Core 3.1 Web 应用程序与 React - 如何防止基于 Active Directory 组的访问

    我有一个 NET Core 3 1 Web 应用程序 其中包含使用 Windows 身份验证的 React 当用户输入他们的 Active Directory 凭据时 我想在允许访问 React 应用程序之前验证他们属于特定的 Active
  • ember.js 中的多个动态段

    我目前的路线定义如下 App Router map function this resource players path page id function this resource player path player id 我的想法是
  • 记录用户登录,以便报告客户端超出许可证数量

    我是商业 Windows 应用程序 c 的首席开发人员 一项新要求是跟踪滥用许可证的客户 例如 假设客户购买了 10 个用户许可协议 即在任何给定时间有 10 个并发用户 我需要能够在回顾历史记录时报告客户同时登录的用户数超过 10 的情况
  • 用户输入到二维数组中

    我对 C 完全陌生 我想要简单的代码来根据用户输入创建矩阵 E G int matrix1 new int 2 2 now using input i d like to add integers into the array matrix
  • 创建一个构建过程模板,该模板除了将所有文件复制到另一个目录外什么也不做

    我想在 TFS 2012 Express 中创建一个构建定义 它将简单地将项目源树中的所有文件复制到驱动器上的另一个文件夹中 只是强调 我不希望构建输出转到另一个目录 我希望源文件本身 原因是我让 IIS 指向特定文件夹 并且我希望构建将最
  • 在 django-webodt 中使用可变图像

    有人使用吗django webodt 浏览文档 我找不到有关在文档中使用图像的任何内容 我想在 ODT 文档中插入 可变 图像 ImageField 这可能吗 我正在使用 OpenOffice 后端 我不知道这是否适合你 我使用pod在我的
  • Rust 中 Result 中的“T”代表什么?

    官方文档做了很多参考T enum Result
  • 无法使用 Express 发布 / 错误

    我正在尝试使用express 创建一个简单的表单处理程序 我为我的表单尝试了以下代码
  • C/C++ 中的整数除法会遇到精度损失问题吗?

    假设我们有三个整数 int long long long unsigned int 等 变量a b c 通常情况下 执行 c a b 将导致分数截断 但是 c 有可能得到错误的值吗 我不是在谈论 a b 可能超出范围c s type 相反
  • 从 Parse 查询 GeoPoint 并将其作为 MKAnnotation 添加到 MapKit?

    我正在尝试查询存储在 Parse 后端的 PFGeoPoints 数组 我在 Parse 中有一个名为 Post 的 PFObject 并为其分配了 位置 标题 消息 等数据 从我的应用程序发布后 所有内容都会发送到 Parse 并正确存储
  • playframework中的多个文件上传

    我在上传多个文件时遇到一些问题 当我选择x个文件时 它成功通过 但第一个文件正在上传x次 而其他文件根本没有上传 有人能指出我做错了什么吗 Form form Projects uploadPictures project id encty
  • 从 HTML 表中检索过滤后的数据并将其格式化为数组

    我一直在 PHP 系统中开发一个函数 我可以在其中过滤记录 然后将其导出到具有使用 PHPSpreadSheet 模板的 Excel 我的问题是我不知道如何检索上面标题中所述的过滤记录 我想我的代码中遗漏了一些东西 这是我将记录从数据库提取