ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

如何将json模型对象保存到php mysql数据库

2019-10-11 21:31:02  阅读:260  来源: 互联网

标签:php mysql json ajax gojs


这是我的第一篇文章,因此,如果我错过了任何内容,请耐心等待:).

即时通讯使用GoJS的go-debug.js库在浏览器上制作了一些图表,但即时通讯存在保存选项问题.此图产生一个JavaScript对象,您可以通过此命令myDiagram.model.toJson()将其转换为Json并将其传递给数据库.我想按保存按钮使用Ajax方法将图表保存到PhP,然后保存到mySQL数据库中.

谢谢您的帮助!

这是我的保存脚本,但我不知道为什么它不起作用.

  window.onload = function(){


jQuery(document).ready(function(){
    $.ajax({
    type: 'POST',
    contentType: "application/json; charset=utf-8",
    url: 'savemodel.php',
    data: {json: JSON.stringify(modelJson)},
    dataType: 'json'
})

.done( function( data ) {
    console.log('done');
    console.log(data);
})
.fail( function( data ) {
    console.log('fail');
    console.log(data);
})
});

    //return modelJson;



  }
  function load() {
    myDiagram.model = go.Model.fromJson(document.getElementById("mySavedModel").value);
    // loadDiagramProperties gets called later, upon the "InitialLayoutCompleted" DiagramEvent
  }


  function loadDiagramProperties(e) {
    var pos = myDiagram.model.modelData.position;
    if (pos) myDiagram.position = go.Point.parse(pos);
  }



  }

和我的PHP代码是:

      <?php 

header('Content-Type: application/json');
include 'config.php';
session_start();
error_reporting(E_ALL);
ini_set('display_errors', 1);

$session_id=$_SESSION['sess_user_id']; // User session id

$modelJson = $_POST['json'];




$sql = "INSERT INTO c_map 
       (ref_num, members_id, title, description, ingredients) 
        VALUES (NULL, '$session_id', 'title', 'description',
        '".mysql_real_escape_string($modelJson)."');";


mysqli_query($connection, $sql);





?>

例如.命令myDiagram.model.toJson();的产生;这是一个有两个孩子的树形图,如下所示:

{ "class": "go.GraphLinksModel",
  "modelData": {"position":"-545.114064532096 -44.69966023522102"},
  "nodeDataArray": [ 
{"key":"Alpha"},
{"key":"N"},
{"key":"N2"}
 ],
  "linkDataArray": [ 
{"from":"Alpha", "to":"N"},
{"from":"Alpha", "to":"N2"}
 ]}

我引用了GoJs网站上的模型保存文档:

GoJS does not require you to save models in any particular medium or
format. But because this is JavaScript and JSON is the most popular
data-interchange format, we do make it easy to write and read models
as text in JSON format.

Just call Model.toJson to generate a string representing your model.
Call the static method Model.fromJson to construct and initialize a
model given a string produced by Model.toJson. Many of the samples
demonstrate this — search for JavaScript functions named “save” and
“load”. Most of those functions write and read a TextArea on the page
itself, so that you can see and modify the JSON text and then load it
to get a new diagram. But please be cautious when editing because JSON
syntax is very strict, and any syntax errors will cause those “load”
functions to fail.

JSON formatted text has strict limits on the kinds of data that you
can represent without additional assumptions. To save and load any
data properties that you set on your node data (or link data), they
need to meet the following requirements:

the property is enumerable and its name does not start with an
underscore (you can use property names that do start with an
underscore, but they won’t be saved) the property value is not
undefined and is not a function (JSON cannot faithfully hold
functions) the model knows how to convert the property value to JSON
format (numbers, strings, JavaScript Arrays, or plain JavaScript
Objects) property values that are Objects or Arrays form a tree
structure — no shared or cyclical references Model.toJson and
Model.fromJson will also handle instances of Point, Size, Rect, Spot,
Margin, Geometry, and non-pattern Brushes. However we recommend that
you store those objects in their string representations, using those
classes’ parse and stringify static functions.

Because you are using JavaScript, it is trivial for you to add data
properties to your node data. This allows you to associate whatever
information you need with each node. But if you need to associate some
information with the model, which will be present even if there is no
node data at all, you can add properties to the Model.modelData
object. This object’s properties will be written by Model.toJson and
read by Model.fromJson, just as node data objects are written and
read.

解决方法:

您不需要对该JSON进行json_decode,因为它已成为对象.
删除此部分:

$directions = json_decode($_POST['json']);
var_dump(directions); // here's an error btw

并将其更改为:

$directions = $_POST['json'];

然后只需将其保存为文本模式即可.
别忘了逃脱它:

$sql = "INSERT INTO c_map 
       (ref_num, members_id, title, description, ingredients) 
        VALUES (NULL, '$session_id', 'title', 'description',
        '".mysql_real_escape_string($directions)."');";

标签:php,mysql,json,ajax,gojs
来源: https://codeday.me/bug/20191011/1895799.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有