问题
我如何实现通过 AJAX 传递的 PHP 回调,而 PHP 回调由 AJAX 请求的页面调用?
设置
评论通过 AJAX 发布,参数通过序列化和加密传递(因此它们不能在传输过程中更改或精心设计的 AJAX 请求以滥用评论系统)。问题是,我需要新的总评论量来更新不同 mysql 表中的字段(在使用评论的每个地方都会改变)而不是评论本身。
例子
有人在论坛主题上发表评论,该主题需要知道总评论数(无需每次都查询评论表)。问题是,当通过 AJAX 发布评论时,我们不知道要更新什么表、哪些字段等,以及必须执行附加代码(例如还记录所有留下评论的成员)关于特定主题)。
解决方案
在声明评论小部件时,我考虑过使用闭包添加两个 PHP 回调。这两个回调 (onSuccess() onFailure()) 将能够执行所需的任何工作,例如计算总评论数和更新特定论坛主题的总评论数。然后序列化,加密,通过ajax作为参数传递,然后PHP解密和反序列化回调并执行它们。
为什么解决方案会失败
因为闭包不能序列化!另外,在有人建议之前我没有使用 eval 。
又是一个问题
我如何实现通过 AJAX 传递的 PHP 回调,而 PHP 回调由 AJAX 请求的页面调用?
更新
看起来你们中的一些人没有阅读整个问题并理解回调将在 PHP 中完成 - 而不是 javascript(使用 AJAX 回调)。AJAX 仅用于传输已发布的评论 - 不处理它(这就是 PHP 所做的,这就是问题所在的回调所在)。