Я пытаюсь нарисовать файл 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 не смешивался (также для разделения модулей). Я не использую какие-либо рамки на данный момент. Может кто-нибудь помочь мне с лучшим способом сделать то, что я прошу? Спасибо.
Если я правильно понял вашу проблему,
вам нужно иметь отдельный файл для обработки файла загрузки 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. отправить данные клиенту
Других решений пока нет …