0

0

使用 jQuery 和 DataTables 传递表单数据进行动态数据筛选

霞舞

霞舞

发布时间:2025-10-12 09:09:01

|

645人浏览过

|

来源于php中文网

原创

使用 jquery 和 datatables 传递表单数据进行动态数据筛选

本文档旨在提供一个清晰的教程,指导开发者如何利用 jQuery 和 DataTables 组件,通过 HTML 表单(特别是

前端实现:jQuery 和 DataTables 的集成

首先,我们需要在 HTML 中创建一个表单,包含一个

PLACE # PLACE NAME TOTAL VISITORS
PLACE # PLACE NAME TOTAL VISITORS

接下来,使用 jQuery 和 DataTables 初始化表格,并配置 AJAX 数据源。关键在于,我们需要在表单提交时重新加载 DataTables 的数据,并将表单数据传递给服务器。

$(document).ready(function() {
    var table = $('#place-table').DataTable({
        "ajax": {
            url: "json.php",
            "dataSrc": "",
            "data": function(d) {
                // 获取表单数据
                var frm_data = $('#frm').serialize();
                // 将表单数据添加到 AJAX 请求中
                return frm_data;
            }
        },
        columns: [
            { data: 'place_id' },
            { data: 'place_name' },
            { data: 'total_visitor' }
        ]
    });

    // 监听表单提交事件
    $("#frm").submit(function(e) {
        e.preventDefault(); // 阻止表单默认提交行为
        table.ajax.reload(); // 重新加载 DataTables 数据
    });
});

代码解释:

  • $('#place-table').DataTable({...}):初始化 DataTables,并配置 AJAX 数据源。
  • url: "json.php":指定服务器端处理数据的 PHP 文件。
  • dataSrc: "":指定返回的数据源,这里假设服务器直接返回数组。
  • data: function(d) { ... }:这个函数用于在 AJAX 请求发送之前,修改传递给服务器的数据。
  • $('#frm').serialize():将表单数据序列化为 URL 编码的字符串,例如:"selectplace=PLACE+1"。
  • $("#frm").submit(function(e) { ... }):监听表单的提交事件。
  • e.preventDefault():阻止表单的默认提交行为,防止页面跳转。
  • table.ajax.reload():重新加载 DataTables 的数据。

注意事项:

南方数据企业网站管理系统11 bulid 080901 全屏修正版
南方数据企业网站管理系统11 bulid 080901 全屏修正版

南方数据企业网站管理系统 V11.0全屏版新增功能:1.首页模板布局做了全新的调整;2.新增了企业网站广告管理系统,可以在后台随意增加和修改Banner广告、对联广告、浮动广告、弹出广告;3.新增了QQ在线资讯功能,同时还有N种模板选择;4.更换了网站统计管理系统;5.对菜单进行了加粗处理,显得更美观;6.后台使用了全新的静态编辑器,提高了后台打开编辑器的速度;7.新增了一个模板;8.修改了中英文

下载
  • 确保 DataTables 已经正确引入到项目中。
  • $('#frm').serialize() 是一个方便的方法,可以将表单数据转换为字符串,但需要确保表单元素具有 name 属性。
  • e.preventDefault() 非常重要,可以防止表单提交导致页面刷新。
  • 定义var table = $('#place-table').DataTable({...}),将DataTable对象赋值给变量table,以便在后续的table.ajax.reload()中使用。

后端实现:PHP 处理数据和查询数据库

服务器端 PHP 脚本 json.php 负责接收表单数据,查询数据库,并将结果以 JSON 格式返回。

connect_error) {
    die("连接失败: " . $conn->connect_error);
  }

  // 获取 POST 请求中的 selectplace 值
  $selectedplace = $_POST['selectplace'];

  // 构建 SQL 查询语句,使用预处理语句防止 SQL 注入
  $sql = "SELECT id, place_name, total_visitor FROM placestable WHERE place_name = ?";
  $stmt = $conn->prepare($sql);
  $stmt->bind_param("s", $selectedplace); // "s" 表示字符串类型

  // 执行查询
  $stmt->execute();
  $result = $stmt->get_result();

  // 将结果转换为数组
  $data = array();
  while($row = $result->fetch_assoc()) {
      $data[] = array(
          "place_id"=>$row['id'],
          "place_name"=> $row['place_name'],
          "total_visitor"=> $row['total_visitor'],
      );
  }

  // 设置响应头为 JSON 格式
  header('Content-Type: application/json');

  // 将数组编码为 JSON 字符串并输出
  echo json_encode($data);

  // 关闭连接
  $stmt->close();
  $conn->close();
?>

代码解释:

  • $_POST['selectplace']:获取通过 POST 请求传递的 selectplace 的值。
  • $sql = "SELECT * FROM placestable WHERE place_name = '$selectedplace'":构建 SQL 查询语句,根据 selectplace 的值筛选数据。 注意:这里使用了预处理语句来防止SQL注入。
  • mysqli_query($conn, $sql):执行 SQL 查询。
  • mysqli_fetch_assoc($result):从结果集中获取一行数据,并以关联数组的形式返回。
  • echo json_encode($data):将 PHP 数组编码为 JSON 字符串,并输出到客户端。
  • header('Content-Type: application/json');:设置HTTP响应头,告诉浏览器返回的是JSON数据。
  • 数据库连接信息: 请将代码中的数据库连接信息替换成你自己的。

安全性提示:

  • SQL 注入: 直接将用户输入的值拼接到 SQL 语句中存在 SQL 注入的风险。强烈建议使用预处理语句(Prepared Statements)来防止 SQL 注入。 上面的代码已经修改为使用预处理语句。

总结

通过以上步骤,我们成功地实现了使用 jQuery 和 DataTables 传递表单数据进行动态数据筛选的功能。 关键在于前端使用 jQuery 监听表单提交事件,并将表单数据通过 AJAX 传递给后端,后端 PHP 脚本接收数据,执行数据库查询,并将结果以 JSON 格式返回。 同时,务必注意 SQL 注入的风险,并采取相应的安全措施。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2682

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1660

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1517

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

952

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1419

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1235

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1488

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1306

2023.11.13

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

23

2026.01.19

热门下载

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

精品课程

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

共48课时 | 1.8万人学习

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

共3课时 | 0.3万人学习

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

共1课时 | 801人学习

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

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