Intereting Posts
Как я могу поместить свою форму в другую форму и использовать одну кнопку отправки? Можно ли установить лимит в выпадающем списке с несколькими выборами? удалить дочерний узел в XML-файле с помощью php Невозможно повторно назначить автоматически-глобальную переменную _POST PHP и Python на amazon ec2 Кэш-объект в PHP без использования сериализации Прохождение сеанса между контроллером CSV-файл из MySQL с использованием PHP с помощью apopach (mysqli-> connect и т. Д.) Yii2 FileInput – попытка получить свойство не объекта Измените uri модуля без переименования класса в PyroCMS пригласительный календарь .ics не работает в выпуске outlook.com Проверьте, действительно ли PDF является PDF-файлом с PHP PHP file_get_contents очень медленный при использовании полного URL-адреса Отправка пустых значений с результатами PDO с ошибкой Предотвращение прямого доступа к изображениям с использованием URL-адреса браузера

как сохранить объект модели json в базу данных php mysql

это мой первый пост, поэтому, если я пропустил что-нибудь, пожалуйста, будьте терпеливы :).

im, используя библиотеку go-debug.js от GoJS, чтобы сделать некоторые диаграммы в браузере, но im запускает проблему с возможностью сохранения. Эта диаграмма создает объект JavaScript, который вы можете преобразовать в Json и передать его в базу данных с помощью этой команды myDiagram.model.toJson () . Я хочу, когда я нажму кнопку сохранения, чтобы сохранить диаграмму, используя метод 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 не требует сохранения моделей в любом конкретном носителе или формате. Но поскольку это JavaScript и JSON является самым популярным форматом обмена данными, мы упрощаем запись и чтение моделей в виде текста в формате JSON.

Просто вызовите Model.toJson, чтобы создать строку, представляющую вашу модель. Вызовите статический метод Model.fromJson для построения и инициализации модели с учетом строки, созданной Model.toJson. Многие образцы демонстрируют это – поиск функций JavaScript с именем «save» и «load». Большинство этих функций записывают и читают TextArea на самой странице, поэтому вы можете видеть и изменять текст JSON, а затем загружать его, чтобы получить новую диаграмму. Но будьте осторожны при редактировании, потому что синтаксис JSON очень строгий, и любые синтаксические ошибки приведут к отказу функций «нагрузки».

Форматированный текст JSON имеет строгие ограничения на типы данных, которые вы можете представить без дополнительных предположений. Чтобы сохранять и загружать любые данные, заданные в данных узла (или данных канала), они должны отвечать следующим требованиям:

свойство перечислимо, и его имя не начинается с подчеркивания (вы можете использовать имена свойств, которые начинаются с подчеркивания, но они не будут сохранены), значение свойства не определено и не является функцией (JSON не может точно удерживать функции), модель знает, как преобразовать значение свойства в формат JSON (числа, строки, массивы JavaScript или объекты простого JavaScript) значения свойств, которые являются объектами или массивами, образуют древовидную структуру – без общих или циклических ссылок Model.toJson и Model .fromJson также будет обрабатывать экземпляры точек, размеров, прямоугольников, пятен, полей, геометрии и не-образных кистей. Однако мы рекомендуем хранить эти объекты в своих строковых представлениях, используя эти синтаксические разборки и строгие статические функции.

Поскольку вы используете JavaScript, вам тривиально добавлять свойства данных в данные узла. Это позволяет вам связывать любую информацию, необходимую с каждым узлом. Но если вам нужно связать некоторую информацию с моделью, которая будет присутствовать, даже если нет данных узла, вы можете добавить свойства к объекту Model.modelData. Свойства этого объекта будут записаны Model.toJson и прочитаны Model.fromJson, так же как и объекты данных узла будут записаны и прочитаны.

Solutions Collecting From Web of "как сохранить объект модели json в базу данных php mysql"

Вам не нужно json_decode этого JSON, потому что он становится объектом.
Удалить эту часть:

 $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)."');";