javascript — динамическое рисование JSON-графа с помощью Sigma.js

Я пытаюсь нарисовать файл JSON, который загружен в форму, чтобы он мог отображаться на странице с помощью Sigma, но я не хочу смешивать код PHP и JS в одном файле, поэтому я не знаю, как передать переменную, содержащую путь к файлу JSON, в функцию рисования в моем .js.

У меня есть следующие файлы (я опускаю код формы, это входной файл, как и любой другой):

upload.php: (форма действия ссылается на это)

<?php
$target_path = "uploads/";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']); // this is what I need to pass to the script
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path))
{
echo "The file has been uploaded. File path is ".$target_path; // manual validation
}
else
{
echo "Error, try again";
}
?>

drawer.js (это находится в другой папке «graph / box.js»)

 sigma.parsers.json("data.json", // Here I need to put the filepath instead of "data.json"{
container: document.getElementById('container'),
settings: {
defaultNodeColor: '#ec5148',
edgeColor: 'default',
defaultEdgeColor: 'grey'
}
});

Я думаю об использовании AJAX для загрузки страницы содержимого с отображаемым графиком, но сначала мне нужно сделать это, и я должен сделать это таким образом, чтобы код JS и PHP не смешивался (также для разделения модулей). Я не использую какие-либо рамки на данный момент. Может кто-нибудь помочь мне с лучшим способом сделать то, что я прошу? Спасибо.

0

Решение

Если я правильно понял вашу проблему,
вам нужно иметь отдельный файл для обработки файла загрузки php
и второй файл, который будет использоваться в качестве поставщика для JSON-файла графа для графа.

при нажатии кнопки слушатель что-то вроде

$.ajax({
type: "POST",
url:upload_handler.php'
....

upload.php

код, который у вас уже есть + перенести данные во второй файл php или сохранить в db
если вы собираетесь иметь много пользователей

JS запрос данных JSON

sigma.parsers.json (/path_to/phpAPI.php, …

enter code here

phpAPI.php

1. восстановить данные из базы данных или напрямую из файла upload.php

2. отправить данные клиенту

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]