我正在努力创建一个类似“沙盒”的项目,许多用户将在其中登录并在他们自己的“沙盒”上创建可拖动的“节点”。我希望能够在每次修改后自动保存应用程序,但首先要做的是——我正在尝试将我的 Javascript 对象存储在 MySQL 中。
我是 Javascript、PHP 和 MySQL 的新手,但 JSON 似乎是我完成这项任务的最佳伙伴。这是一个节点的粗略示例:
node1.pos
node1.name
node1.content
node1.siblings
*注意:实际节点将包含更多属性,其中一些具有潜在的敏感信息。
我的目标是让用户操作每个节点(拖动、链接到 sibling 、更改名称等),然后在重新访问该页面时,“沙箱”重新填充正确位置的节点,以及与之关联的所有正确数据。
我认为我可以处理填充 Canvas 的函数,但让我感到困惑的是在 MySQL 和 Javascript 之间移动对象。具有方法的对象会导致任何问题吗?
有没有人有任何可以帮助我的帮助、建议或引用资料?
最佳答案
我建议您创建一个网络服务来存储用户发送的任何数据。我们称它为http://server.net/store.php。
然后客户端将使用 JavaScript 将有意义的数据连同一些用户凭证序列化为 JSON...
var dataPacket = { userCredentials: 77777777, /* whatever is sensible */ nodes: [ {id: 1, posX: 10, posY: 345 }, {id: 2, posX: 5, posY: 136} ] };
然后客户端会使用 jQuery + AJAX 将数据发送到服务器...
$.ajax({ type: "POST", url: "http://server.net/store.php", dataType: "json", data: dataPacket });
然后,在服务器端将检查数据的有效用户凭据,然后它可以继续在某种数据库中保存收到的 JSON 编码数据,这实际上只是一个纯字符串。
创建一个 Web 服务,该服务将从数据库中读取并返回任何以前存储的数据。我们称它为http://server.net/load.php。
当用户需要加载他之前正在做的事情时,客户端会使用 JavaScript 来请求数据...
$.ajax({ type: "POST", url: "http://server.net/load.php", dataType: "json", data: { userCredentials: 77777777, /* whatever is sensible */ } success: function(dataPacket) { /* process the received dataPacket */ } });
请注意,该代码依赖于 jQuery,仅作为示例提供,我还没有实际测试过。
另见:
- jQuery Tutorials
- jQuery AJAX documentation
- JSON parsers and documentation (in case you want to process the
dataPacket
before storing/retrieving it from the DB)
希望这对您有所帮助。
上帝保佑!
关于php - 我将如何使用 JSON/PHP/Mysql 保存我的 Javascript 对象,以便在用户返回时重新加载它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4834917/