欢迎来到全国社交动力网络科技有限公司
建站资讯

当前位置: 首页 > 建站资讯 > 建站教程 > PHP教程

通过表单选择更新 DataTables 数据

作者:购物商城系统 来源:php教学视频日期:2025-10-12

通过表单选择更新 datatables 数据

本文旨在指导开发者如何通过 HTML 表单的选择,动态更新 DataTables 的数据。我们将详细讲解如何使用 jQuery 监听表单提交事件,并将表单数据传递给服务器端,最终刷新 DataTables 以显示更新后的数据。通过本文,你将掌握一种常用的动态数据展示技巧。

DataTables 是一款强大的 jQuery 表格插件,可以提供排序、分页、过滤等功能。在实际应用中,我们经常需要根据用户的选择动态更新表格数据。以下将详细介绍如何实现这一功能。

前端实现

HTML 表单:

首先,我们需要创建一个 HTML 表单,包含一个 zuojiankuohaophpcnselect> 元素和一个提交按钮。

<form method="POST" id="frm">    <select name="selectplace">        <option value="PLACE 1">PLACE 1</option>        <option value="PLACE 2">PLACE 2</option>        <option value="PLACE 3">PLACE 3</option>    </select>    <button type="submit" name="submitPlace">SUBMIT</button></form>
登录后复制

以及用于展示数据的 DataTables 表格:

<div class="table-responsive">    <table class="table table-bordered table-striped text-center" id="place-table">        <thead>            <tr>                <th>PLACE #</th>                <th>PLACE NAME</th>                <th>TOTAL VISITORS</th>            </tr>        </thead>        <tfoot>            <tr>                <th>PLACE #</th>                <th>PLACE NAME</th>                <th>TOTAL VISITORS</th>            </tr>        </tfoot>    </table></div>
登录后复制

DataTables 初始化:

使用 jQuery 初始化 DataTables,并配置 ajax 选项。

表单大师AI 表单大师AI

一款基于自然语言处理技术的智能在线表单创建工具,可以帮助用户快速、高效地生成各类专业表单。

表单大师AI74 查看详情 表单大师AI
$(document).ready(function() {    var table = $('#place-table').DataTable({        "ajax": {            url: "json.php",            "dataSrc": "",            "data": function(d) {                var frm_data = $('#frm').serializeArray(); // 使用 ID 选择器                $.each(frm_data, function(key, val) {                    d[val.name] = val.value;                });            }        },        columns: [            { data: 'place_id' },            { data: 'place_name' },            { data: 'total_visitor' }        ]    });    // 监听表单提交事件    $("#frm").submit(function(e) {        e.preventDefault(); // 阻止默认的表单提交行为        table.ajax.reload(); // 重新加载 DataTables 数据    });});
登录后复制

关键点:

url: 指定服务器端处理数据请求的 URL (json.php)。dataSrc: 指定从服务器返回的数据中,包含表格数据的属性。如果服务器直接返回数组,则设置为 ""。data: 这是一个函数,允许我们在每次 AJAX 请求之前修改要发送的数据。 在这里,我们使用 $('#frm').serializeArray() 获取表单数据,并将其添加到 DataTables 的 AJAX 请求中。 使用ID选择器 #frm 可以确保正确选取到对应的form表单。columns: 定义表格的列,并指定每一列对应的数据源。使用 preventDefault() 阻止了表单的默认提交行为,防止页面跳转。table.ajax.reload() 用于重新加载 DataTables 的数据,触发 AJAX 请求。

后端实现 (json.php)

接收表单数据:

在 json.php 中,我们需要接收从前端传递过来的表单数据,并根据这些数据构建 SQL 查询语句。

<?php$servername = "localhost";$username = "your_username";$password = "your_password";$dbname = "your_database";// 创建连接$conn = new mysqli($servername, $username, $password, $dbname);// 检测连接if ($conn->connect_error) {    die("连接失败: " . $conn->connect_error);}$selectedplace = $_POST['selectplace']; // 获取 selectplace 的值// 预防 SQL 注入$selectedplace = $conn->real_escape_string($selectedplace);$sql = "SELECT * FROM placestable WHERe place_name = '$selectedplace'"; // 使用 place_name 进行匹配$result = $conn->query($sql);$data = array();if ($result->num_rows > 0) {    while($row = $result->fetch_assoc()) {        $data[] = array(            "place_id"=>$row['id'],            "place_name"=> $row['place_name'],            "total_visitor"=> $row['total_visitor']        );    }}echo json_encode($data);$conn->close();?>
登录后复制

关键点:

使用 $_POST['selectplace'] 获取前端传递的 selectplace 的值。重要: 使用 mysqli_real_escape_string() 函数对输入数据进行转义,以防止 SQL 注入攻击。修改 SQL 查询语句,使用 place_name = '$selectedplace' 作为 WHERe 子句,确保查询的正确性。返回 JSON 格式的数据,DataTables 会自动解析。

注意事项

安全性: 务必对所有用户输入进行验证和转义,防止 SQL 注入和 XSS 攻击。错误处理: 在服务器端添加错误处理机制,例如记录日志或返回错误信息给客户端。性能: 对于大型数据集,考虑使用分页或延迟加载等技术来提高性能。调试: 使用浏览器的开发者工具可以方便地调试 AJAX 请求和响应。

总结

通过以上步骤,我们就可以实现通过表单选择动态更新 DataTables 数据的功能。 关键在于理解 DataTables 的 AJAX 配置,以及如何在表单提交时重新加载数据。同时,要时刻注意安全性问题,确保应用程序的稳定性和可靠性。

以上就是通过表单选择更新 DataTables 数据的详细内容,更多请关注php中文网其它相关文章!

上一篇: 解决Sagepay 5006错误:RedirectionURL缺失问题
下一篇: PHP使用Discord Webhook发送文件附件教程

推荐建站资讯

更多>