【发布时间】:2016-09-14 11:01:42
【问题描述】:
您可能还记得不久前我向您寻求帮助,帮助您处理 PHP 中通过 $_SESSION 传输的对象(更多:Data loss during sending via $_SESSION from one script to another)。目前我正在重新设计整个项目,我不知道如何正确完成它。我的意思是,如何“根据艺术”做,而不是“不惜一切代价/最简单(但讨厌)的方式”。
如您所见,我希望我的网站在启动时仅显示导航,我希望用户在其中设置他的启动参数。将来,导航栏将具有折叠功能(以扩展数据显示部分的高度)。当用户设置参数(或不设置参数 - 用于默认视图)并单击“过滤和排序”(可能将重命名为“生成”)时,第二部分应显示为用户定义的数据过滤和排序。
数据从 CSV 文件中读取并存储在我在上面链接的问题中向您展示的自定义类定义的 PHP 对象中。所以我需要在 5 个文件之间进行数据通信:
前端:
index.php
前端-后端:
navigation.php
data.php
popup.php tinybox2 处理。
后端:
classes.php
- tinybox2“库”。
我的沟通流程是:
显示在index.php顶部的navigation.php向data.php发送过滤和排序参数,使其出现在index.php的底部。
data.php 和 popup.php 应使用由 CSV 文件 datafile.csv 构造的 classes.php 中包含的类。
当在data.php 中单击DataBox 时,popup.php 会出现在index.php 内容上以显示扩展对象数据。
那么,我应该怎么做才能正确地做到这一点? 哪个选项最好:$_POST、$_SESSION 或其他?也许由于在index.php 上嵌入了所有文件,因此可以以不需要通信的方式存储所有数据?如何嵌入文件 - 使用 include、require 或其他方式?
有很多辅助问题,但最重要的是:如何正确地做?提前感谢您的帮助:)
PS 为了确定,请在下面找到另外一个用例:
UC1:显示系统的标准使用
- 用户通过系统进入网站
- 用户选择过滤和排序参数
- 用户开始生成视图
- 正在从 *.csv 文件中读取数据
- 在上述过程中,正在过滤和排序数据
- 系统正在向用户显示数据
扩展:
5a。无数据显示:系统显示空数据部分
6a。用户想要再次过滤和排序:返回第 2 步。
UC2(可选):用户想要共享数据
- UC1
- 用户选择共享数据的选项
- 如果用户想将其发送到打印机或电子邮件,系统会显示问题
- 用户选择选项(对于这种情况:电子邮件)
- 系统要求提供电子邮件地址
- 用户提供电子邮件地址
- 系统发送一封电子邮件,其中包含网站上显示的当前
data.php数据。
PPS 我知道我应该给你看一些代码 sn-ps,但是我当前的代码是一团糟,有很多互换的 html、php 和 cmets,无法从系统中删除(或者我需要很长时间才能清理它在这里展示)。我主要是在向您寻求帮助,因为我真的想改造当前的解决方案,因此我从零开始重写代码,使用旧代码作为提示,而不是模板。就像微软对 Windows Vista 和 Windows 7 所做的那样:P 希望你能理解 ^^'
【问题讨论】:
-
我认为这更多的是您要构建什么样的应用程序的问题。如果它是SPA,您的 php-backend 可能会简化为一个简单的 rest-server。但是您的客户端需要一些额外的技术(角度,反应,...)。如果它是一个更传统的应用程序(没有 ajax),那么就不需要 php 文件来通信。对服务器的每个请求都应该通过它需要呈现的视图来区分。并且通过请求的属性所有数据一知。
-
我知道这听起来很笼统,但您的问题也是如此。 ;) 这可能也是投反对票的原因(不是我的顺便说一句)。
-
@Yoshi,好的,我明白了。我不太了解 AJAX 和 JavaScript,我想以最简单的方式来做。首先出现导航,我输入了一些数据,并且没有重新加载我的页面,第二部分出现了过滤和排序的数据。如果可能的话,所有干净的 PHP 和 HTML。但是,如果我正确地解释了您的评论,没有一些额外的技术,那是不可能的?
-
appearing 基本上与 ajax 齐头并进。如果你想单独使用 php,即使它是一个很大的障碍,我强烈建议你使用框架。那里有很多,很难我随时推荐symfony。