我会用一个实际的例子来解释。
你说过你有一堆记录你想要编辑、删除、隐藏等。我已经做过很多次了:将记录列出到一个表中,其中“操作”列包含打开以进行编辑、删除、隐藏等操作/取消隐藏、上移/下移、第一个/最后一个...
当然,这一切都只能通过 PHP 和表单提交或页面重定向的方式来完成,但为什么不做这么多用户友好的数据管理呢?所以我使用了 AJAX 和 JSON,而 jQuery 框架是我最好的朋友来实现我将进一步描述的内容。
所以让我们绕过这个问题:
- 我们有一个存储在数据库中的数据(让我们使用 MySQL)
- 我们有一个用 PHP 编写的服务器端(或者必须编写它)
- 我们有一个前端,允许我们使用 jQuery(AJAX 和 JSON)管理数据
- 用户执行的每个操作都将通过 AJAX 请求 (jQuery) 发送到服务器 (PHP),服务器将管理该操作并响应前端
- 数据本身也由 jQuery 检索和呈现
数据检索和呈现
这将通过 PHP 查询 MySQL 数据库来完成。您将准备方法/操作,该方法/操作将采用偏移量和限制等参数来仅查询具体的一组记录。
在前端,AJAX 请求将被发送到 PHP 以检索记录。PHP 可以返回完整的 HTML 标记,您将在表格末尾附加该标记,或者 HTML 标记可以在 jQuery 中从 JSON 格式的数据中设置。我认为第二种方法更好。
您可以创建一个包含复选框的列(是的,所有表都可以在一个表单中,但这不是必须的),该值将带有记录的 ID。然后,您将写下包含您要呈现的数据的其他行以及包含特殊操作链接的“操作”列。
管理操作和数据分页
所以我们有一个表,默认为 15 行,第一列带有复选框和记录 ID,数据列和操作列。
用户单击第三行的隐藏操作 - 通过 jQuery,您可以捕获单击事件并从该链接中获取父 tr 元素。然后你找到它的第一个孩子 - td 从中你找到复选框的值 - 记录的 ID。所以我们现在知道我们想要隐藏 ID 为 9 的记录。必须向将管理隐藏操作的服务器执行 AJAX 请求(可能只是在数据库中为该记录设置一些标志),成功后响应是发送回前端 - 这是您隐藏整个 tr 元素(以及其中的所有数据)或只是更改一些显示隐藏/可见标志的图标的时刻。
删除时,你也删除了 tr 元素,移动时,你也移动了 tr 元素。
没有重定向,没有重新加载,没有提交。
这只是一个上下文,代码和所有工作都在你身上。我只是想描绘一下如何使用 PHP + jQuery 使用 JSON 和 AJAX 来实现这一点。
此外,这种方法需要启用 javascript,但您仍然可以编写应用程序,以便在没有 javascript 支持时能够提交、重定向、重新加载...