是否可以将PHP phpexcel
对象传递到页面的HTML中,以便我可以使用表单POST
或使用jquery或其他东西的ajax调用将其传递回服务器?我在生成数据的html表视图时创建对象,我希望他们能够点击按钮并将其作为文档下载,如果他们想要它,但我希望能够使用对象我已经创建,以便为他们生成下载文档。
我可以将对象传递给HTML中的客户端,然后将其传递回服务器吗?
答案 0 :(得分:1)
通常我在这些场景中所做的是以下之一:
1)在生成要显示给用户的页面的同时,生成信息并将其保存为文档。然后,当他们想要下载它时,我直接链接到我刚刚创建的文件。这是一个低容量页面,可能是一个人或少数人每天访问一次,并且每次使用它们时很有可能下载文件。 这通常是我在发现这些文档时发现自己的情况。只需确保您管理文档,使其不会堆积,可能是每次生成时使用最新文档覆盖现有文档,或者删除旧文档。
2)当他们点击下载时,只需使用相同的查询重新生成数据。如果查询速度很快且数据变化不大,或者如果他们下载的数据从他们在页面上看到的数据略微更新,那么这是合适的。
3)在为页面生成数据时,将其保存到用户$_SESSION
,该用户应该(至少对于大多数对象)将其序列化并对其进行适当的反序列化以供将来访问。如果PHPExcel
无法妥善处理此问题,您可能希望创建自己的类,该类继承自PHPExcel
并使用__sleep()
and __wakeup()
来妥善管理您需要的任何详细信息确保它适当地序列化和反序列化。然后,当您打电话下载数据时,您可以像在刚创建数据时一样使用内存中的数据。您可能希望主动管理您的用户会话,以确保每次用户请求页面时都不会占用大量内存,如果它有相当数量的数据。
最后一个选项可能是最正确的"正确的"方法,并且可能适用于大多数情况。序列化的PHP对象没有将业务存储在HTML表单中以传递回服务器,至少在任何正常情况下都不会。