php geht nicht javascript im svg
stefan müller
- datenbank
hallo zusammen,
ich habe folgendes problem:
ich versuche einen interaktiven plan zu gestalten und hab dafür eine svg datei zur anzeige des planes und eine zur steuerung erstellt. man soll so auf dem plan navigieren können. das hat bereits funktioniert indem ich über:
<script type="text/javascript" language="JavaScript" xlink:href="cfControls.js"></script>
ein script in das svg filde eingebunden habe.
weiter:
die daten nach denen gesucht werden kann auf meinem kleinen stadtplan kommen teilweise aus einer datenbank. ich hab daher die seite mit einem kleinen php script an meine my sql datenbank angebunden und mit der endung php im htdocs verzeichnis vom apache gespeichert. nun das problem:
das javascript läuft solange, wie die datei die Endung htm(l) hat. sobald es die endung php trägt, scheint das svg file, welches für die navigation verantwortlich ist, das java script file nicht mehr zu importieren. es funktioniert auch nciht, wenn der code direkt in der datei steht.
warscheinlich ist das nur ein anfänger fehler weil ich mit php noch nix zu tun hatte.
bin für jede hilfe dankbar
:sm)
ps: die datenbankanbindung funktioniert auch weil ich die gewünschten daten geliefert bekomme, so wie ich es will.
Hallo,
das javascript läuft solange, wie die datei die Endung htm(l) hat. sobald es die endung php trägt, scheint das svg file, welches für die navigation verantwortlich ist, das java script file nicht mehr zu importieren. es funktioniert auch nciht, wenn der code direkt in der datei steht.
Do solltest mal etwas Code liefern:
PHP-Code
JS-Code
HTML-Einbindung des SVG-Codes (object, iframe, embed?)
Wird der MIME-Type korrekt gesendet: image/xml+svg
Vielleicht hilft auch einfach diese Einbindung (praktiziere ich selbst so):
<object data="bla.php" ... type="image/svg+xml">
</object>
wobei bla.php direkt SVG-Code schreibt und am Anfang mittels header() auch den Content-type nochmals sendet.
Gib testweise bei xlink:href auch mal den kompletten http://-Pfad zur JS-Datei an (ebenso bei externen Stylesheets).
So arbeitet z. B. http://www.datenverdrahten.de/svgphp/.
MfG, Thomas
[Korrektur:]
Wird der MIME-Type korrekt gesendet: image/xml+svg
Sollte natuerlich image/svg+xml lauten.
MfG, Thomas
hi,
also ich habe die svg objekte mittels object tag eingebunden (soll wohl das allgemeinste sein):
<object id="map" name="map" border="1" class="mapField" data="pics/lageplan.svg" type="image/svg+xml">
<div class="mapField">
Um Dieses Tool zu benutzen benötigen Sie das kostenlose SVG - Viewer
Plugin.
</div>
</object>
das wird mir soweit korrekt angezeigt. auch die kontrolle hab ich so eingebunden:
<div class="controlField">Steuerung:</div>
<object name="controls" class="controlPanel" border="0" data="pics/controls.svg" type="image/svg+xml">
</object>
im svg file ist die script datei mit
<defs>
<script type="text/javascript" xlink:href="cfControls.js"/>
</defs>
eingebunden. das php script sorgt nur für die anbindung an die datenbank und liest ein paar gebäude namen aus und füllt sie in eine drop down liste. die karte selbst hab ich mit dem illustrator10 erstellt. der verpfuscht mir zwar immer die xml ids aber die hab ich schon per hand korrigiert denn wenn die endung meiner datei html lautet funzt es ja. Also denke ich das die datei nicht in das svg file geladen wird. ich hab schon probiert das ganze vollständig zu addressieren mit http usw...funzt auch nicht. wenn man sich das ganze im ie anschaut, bermerkt man, dass beim überfahren mit der maus durchaus etwas passiert weil das fertig in der statusleiste verschwindet. er greift aber nicht auf das script zu. ich hänge auch gern die datei mal ran.?!
;sm)
Hallo,
er greift aber nicht auf das script zu. ich hänge auch gern die datei mal ran.?!
AFAIK ist bei Server-seitigem Zugriff im ASV-Kontext die absolute URL notwendig, deshalb habe ich ja in meiner ersten Antwort darauf hingewiesen, das mal zu probieren.
MfG, Thomas
Hallo,
das php script sorgt nur für die anbindung an die datenbank und liest ein paar gebäude namen aus und füllt sie in eine drop down liste.
An welcher Stelle kommt dieses Script zum Einsatz?
das fertig in der statusleiste verschwindet. er greift aber nicht auf das script zu. ich hänge auch gern die datei mal ran.?!
Dateinamen richtig groß/klein geschrieben? Ansonsten mal im Script eine Testfunktion einbauen, die eine alert()-Box ausgibt und diese Funktion <svg onload="..."> aufrufen.
MfG, Thomas