Ich habe ein d3 Zwangs gerichteten Graphen durch eine statische JSON-Datei bereitgestellt:Dynamisch Füllen Ausgliederungs aus Verzeichnis so Benutzer wählt d3.js JSON Daten
d3.json("../Data/sample.json", function(error, graph) {
//do stuff
});
Statt eine bestimmte JSON-Datei aufzurufen, würde ich Wie der Benutzer, um auszuwählen, welche Datei verwendet werden soll, aus einem Dropdown-Menü im Browser, das von allen Dateien in einem bestimmten Ordner (dem Ordner "Data", der eine Ebene zurück liegt) ausgefüllt wird.
Mein Versuch, die Drop-down mit PHP auf diese Frage anhand der Erstellung (populate a 'select list' from a directory on my server using php and html):
<select name="s1">
<option value="" selected="selected">Select File</option>
<?php
foreach(glob(dirname(__FILE__) . '../Data/*') as $filename){
$filename = basename($filename);
echo "<option value='" . $filename . "'>".$filename."</option>";
}
?>
</select>
Dieser Code ist nach dem </head>
Tag in meinem html, aber vor den <script>
Tags. Dies führt zu einer Dropdown-Liste, in der die einzige Option "Datei auswählen" ist und keine der JSON-Dateien im Ordner "Data" angezeigt wird. Wie bekomme ich die Dateien in der Dropdownliste angezeigt? Wie fahre ich dann die d3-Visualisierung mit der ausgewählten Datei? Ich stelle mir vor, es gibt eine Art von on-event
, die verwendet werden könnte, aber ich bin mir nicht sicher, wo ich anfangen soll.
Ich bin jetzt klar, dass PHP nicht inhärent in einer .html
Datei enthalten sein kann und ordnungsgemäß funktioniert. Was ist der beste Weg, um es zu integrieren oder verwenden Sie reines HTML/Javascript, um das Drop-Down-Menü zu erstellen? Schließlich wird der Viz auf IIS gehostet, wobei ich annahm, dass eine .htaccess-Datei verwendet werden kann. In der Zwischenzeit findet jedoch die Entwicklung mit dem einfachen Python-Server statt.
Vielen Dank für alle Einsichten, die Sie alle haben könnten!