Php 如何在web应用程序中显示和操作可视对象?

Php 如何在web应用程序中显示和操作可视对象?,php,javascript,mysql,html5-canvas,data-visualization,Php,Javascript,Mysql,Html5 Canvas,Data Visualization,仅使用HTML、CSS、JavaScript和带有服务器端脚本语言(例如PHP和MySQL)的关系数据库,如何检索和显示数据对象并可视化地操作它们 通过操纵,我指的是创建新对象、检索存储的对象、可视化其属性(例如,使圆直径变大或变小),以及调用方法和基于拖放设置字段值(更改大小、形状和位置) 使用的一个例子是在线表示带有磁性计数器的物理办公室白板,用于问题监控和跟踪。表中有用于指定问题所有者的行,以及表示业务工作流的列,例如4个阶段的“分配”、“调查”、“实施”、“同意关闭”流程(或其他,仅举一

仅使用HTML、CSS、JavaScript和带有服务器端脚本语言(例如PHP和MySQL)的关系数据库,如何检索和显示数据对象并可视化地操作它们

通过操纵,我指的是创建新对象、检索存储的对象、可视化其属性(例如,使圆直径变大或变小),以及调用方法和基于拖放设置字段值(更改大小、形状和位置)

使用的一个例子是在线表示带有磁性计数器的物理办公室白板,用于问题监控和跟踪。表中有用于指定问题所有者的行,以及表示业务工作流的列,例如4个阶段的“分配”、“调查”、“实施”、“同意关闭”流程(或其他,仅举一个示例)

用户将单击一个按钮创建一个新的Issue对象,该对象具有自己的唯一id号。其形状取决于发行类型、颜色和状态(红色、琥珀色、绿色表示无计划、落后但按计划恢复、按计划恢复)。将其拖动到相关的表单元格将根据其行索引将其分配给所有者,并根据列索引设置生命周期状态。每次拖放或以其他方式更改对象时,可视更改都会反映在数据库中的对象属性中


我在使用HTML5画布元素或SVG与一些巧妙的CSS之间左右为难。我可以解决如何将数据库中已有的内容放到屏幕上,但不能解决如何通过屏幕操作和存储更改。我还假设这可以在HTML/CSS/JavaScript/PHP/MySQL中完成,但是还可以使用其他技术吗?

这听起来像是作为一个以客户端为中心的ajax最有效的方法。这意味着:

  • 用Javascript编写整个UI。您是使用画布、svg还是纯HTML5+CSS3,取决于您的个人偏好、浏览器支持和功能需求
  • 服务器有两个任务:为javascript应用程序提供服务和响应ajax请求
然后可以完全用Javascript进行拖放;您可能希望使用一个javascript库来为您实现本质(有一些jQuery扩展可以用于此);您只需订阅正确的事件,并发出ajax请求来更新和查询数据。因此,例如,如果用户将一个项目拖到一个表单元格中,您将获得该项目的ID、表单元格的ID,并触发一个ajax请求,该请求告诉服务器“现在将项目X分配给了单元格Y”,服务器对该请求的响应为“OK”(在这种情况下,您可以在UI中永久性地进行更改)或一条错误消息(在这种情况下,您可能希望弹出通知或类似的内容)

通信协议的最佳选择是JSON;它内置于jQuery和大多数javascript实现中,可以顺利通过防火墙和web浏览器,以及大多数编程生态系统(包括PHP)此外,与基于XML的替代方案相比,JSON具有非常低的开销


不管怎样,这都不是一件容易的事,没有什么灵丹妙药可以让它只需点击几下就可以工作,你必须问问这是否值得。另外,要考虑到这一点,很明显,使用javascript的界面不会工作得很好(或者根本不会)当脚本被阻止时,或者在没有足够支持的平台上-想想CPU薄弱的移动设备和低于标准的web浏览器,等等。

你尝试了什么?我猜你是疯了老板/客户,或者你有着不值得付出那么多工作和金钱的远大梦想……无论如何,它可以通过Javascript和HTML5来完成e> canvas,但所有前端都将在canvas中完成,因此JS将非常消耗CPU(我猜会比Flash消耗更多),所有拖放操作将导致JS调用PHP方法来处理数据(在AJAX请求中)我会给你代码,SE不是关于这个…我最近读了一本书。重点是呈现为PDF,但这可能对你也很有用,而且听起来你会从向量方法中受益。谢谢你的建议。这是一个附带项目,旨在提高我的编码技能,我只是想检查一下我是否考虑使用正确的技术。我想现在我会放弃拖放的想法,以实现更简单的基于表单的交互,也许在将来(可能是离婚后)会将其增强为拖放。这个例子的想法来自于“T卡”及其板越来越流行的工作,感觉就像20世纪60年代的某些日子。