+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: in Javascriptdatei richtiger Pfad zu einer php-Datei

  1. #1
    War schon öfter hier
    Registriert seit
    20.01.2011
    Beiträge
    111
    Bedankte sich
    33
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard in Javascriptdatei richtiger Pfad zu einer php-Datei

    Hallo,

    Js ist mir nicht so vertraut und ich bin mir nicht sicher,
    ob das Nichtfunktionieren an nem falschem Pfad liegt.
    Die Verzeichnisstruktur ist etwa so:

    mod_mymod
    /javascript/file.js
    /php/file.php


    in der javascript/file.js Datei:
    var msg='php/file.php?call=one;

    in der php-Datei, in der z.B. eine query steckt, passier jetzt aber nichts:
    echo "<script>alert('ich bin drin');</script>";


    In der js-Datei kann ich ja nicht mit Joomlas php-Pfad-Funktionen arbeiten.

    Weiß jemand, ob der Pfad oben so stimmen kann oder
    wie es richtig geht?


    George

  2. #2
    Wohnt hier
    Registriert seit
    14.03.2011
    Beiträge
    2.579
    Bedankte sich
    54
    Erhielt 884 Danksagungen
    in 794 Beiträgen

    Standard

    In der js-Datei kann ich ja nicht mit Joomlas php-Pfad-Funktionen arbeiten.
    Du kannst den JS-Code dynamisch einbinden, so dass du dann auf PHP zurückgreifen kannst.

    Ich habe bspw. in meinen Templates ganz zu Beginn öfters so Zeilen

    HTML-Code:
    <script type="text/javascript">
     var MYBASEURI="<?php echo JUri::root(true);?>";
     var MYJPATHSITE="<?php echo JPATH_SITE;?>";
    </script>
    Die sind dann in allen später eingebundenen JS-Codes verfügbar.

    Oder (was Du ohne weiteres auch innerhalb des Moduls machen kannst)
    http://www.javascriptkit.com/javatut...ernalphp.shtml

    Das ganze geht ähnlich auch mit einem include('pfad/zum/php/wo/mein/JS/erzeugt.php');


    Diese Zeile versteh ich aber eh nicht, abgesehen davon, dass der schleißende Singlequote/Apostroph fehlt.
    Die macht ja noch nichts bzgl. Dateiaufruf.
    Da folgen dann noch weitere Zeilen, die dann mit diesem Pfad einen AJAX-Request starten?
    Code:
    var msg='php/file.php?call=one;

  3. Erhielt Danksagungen von:


  4. #3
    War schon öfter hier
    Registriert seit
    20.01.2011
    Beiträge
    111
    Bedankte sich
    33
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    > ... der schleißende Singlequote/Apostroph fehlt
    ja, Singlequote fehlt in dem Beispielcode und ja, es folgt der AJAX-Request:
    PHP-Code:
    ajaxRequest.onreadystatechange stateChanged;
    ajaxRequest.open('GET'msgtrue);
    ajaxRequest.send(null);} 
    wobei mir das noch viel Neuland ist ... Danke für die Tipps! Mal sehen ...
    Gruß, George

  5. #4
    Wohnt hier
    Registriert seit
    14.03.2011
    Beiträge
    2.579
    Bedankte sich
    54
    Erhielt 884 Danksagungen
    in 794 Beiträgen

    Standard

    Da Du Dich in Joomla 3 befindest, würde ich empfehlen, Du verwendest gleich JQuery, nicht nur für die AJAX-Geschichten. Wird im Normalfall ja eh alles schon geladen.

  6. #5
    Hat hier eine Zweitwohnung Avatar von Matrikular
    Registriert seit
    14.01.2006
    Ort
    Nienburg
    Alter
    39
    Beiträge
    1.440
    Bedankte sich
    219
    Erhielt 593 Danksagungen
    in 441 Beiträgen

    Standard

    [...] verwendest entsprechend der Joomla! Konvention ein Verzeichnis unterhalb /media für Stylesheets, Bilddateien und Scripte und nutzt für die Ausgabe ein Layout im Verzeichnis /tmpl.
    Für einen Ajax Aufruf aus einem Modul heraus wurde in Joomla! 3.x die com_ajax als Empfänger eingeführt.
    Joomla! Development? Hire me! | Teach Yourself Programming in Ten Years

  7. Erhielt Danksagungen von:


  8. #6
    War schon öfter hier
    Registriert seit
    20.01.2011
    Beiträge
    111
    Bedankte sich
    33
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Wenn ich das in den Kopf der Template-index.php baue:
    PHP-Code:
    <script type="text/javascript">
     var MYBASEURI="<?php echo JUri::root(true);?>";
    ... </script>
    // gefolgt von 
    <script src="modules/mod_mymod/javascript/file.js" type="text/javascript"></script>
    ...
    passiert bei einem Aufruf mit alert(MYBASEURI); in der file.js des Moduls eigenartiger Weise nichts - obwohl alles im Quellcode der Seite richtig steht und die file.js-Datei eigentlich eingebunden ist. Wenn ich direkt ein alert("It's me"); setze, ists ok.


    ja, com_ajax gibt es in J!3.2. (ich habe 3.1 - und werd demnächst updaten).
    Das Modul dachte ich später auch noch in einer J!2.5.x-Installation einzusetzen (ca. bis es 3.5 gibt ...)

    Auf Antwort o. Lösung auf die Fragestellung bin ich aber noch nicht gekommen.
    ist der Pfad php/file.php denn ok? In der php kann man ja scheinbar kein die; zur Identifizierung setzen. Das merkt man in .js ja nicht ...

    George

  9. #7
    Wohnt hier
    Registriert seit
    14.03.2011
    Beiträge
    2.579
    Bedankte sich
    54
    Erhielt 884 Danksagungen
    in 794 Beiträgen

    Standard

    HTML-Code:
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de-de" lang="de-de" dir="ltr">
    <head>
    
    <script type="text/javascript">
     var MYBASEURI="<?php echo JUri::root(true);?>";
    </script>
    
    <script src="<?php echo JUri::root(true);?>/modules/mod_dingsbums/javascript/file.js" type="text/javascript"></script>
    
    ...
    modules/mod_dingsbums/javascript/file.js:

    Code:
    alert(MYBASEURI);
    klappt einwandfrei, ggf. halt leere Alert-Box. Die Anführungsstriche nicht vergessen?

    Was sagt die JavaScript-Fehlerkonsole? (Firefox->Extras->Web-Entwickler->Web-Konsole->Tab JS (erst öffnen, dann Seite laden).

  10. #8
    War schon öfter hier
    Registriert seit
    20.01.2011
    Beiträge
    111
    Bedankte sich
    33
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    > Was sagt die JavaScript-Fehlerkonsole?
    das MYBASEURI nicht definiert ist. Kommt also nicht rüber? (ein var MYBASEURI; bringt hier nat. nichts ...).
    (ReferenceError: MYBASEURI is not defined Quelldatei: .../modules/mod_mymod/javascript/file.js)
    In der index.php steht sie ja eigentlich schon als globale Variable, mit var MYBASEURI;, soweit ich das verstanden habe.

    Die file.js wird in der Modul-php Datei eingebunden:
    $document->addScript('modules/mod_mymod/javascript/file.js');
    ...

    und steht dann, mit anderen, im Quellcode des Seitekopfes.

    George
    Geändert von George11 (17.12.2013 um 22:08 Uhr)

  11. #9
    Hat hier eine Zweitwohnung Avatar von Matrikular
    Registriert seit
    14.01.2006
    Ort
    Nienburg
    Alter
    39
    Beiträge
    1.440
    Bedankte sich
    219
    Erhielt 593 Danksagungen
    in 441 Beiträgen

    Standard

    Schmeiss doch für den Moment mal bitte gedanklich alles weg was du bislang gemacht hast und was hier schon gesagt wurde,...

    Was möchtest du überhaupt machen?
    Joomla! Development? Hire me! | Teach Yourself Programming in Ten Years

  12. #10
    War schon öfter hier
    Registriert seit
    20.01.2011
    Beiträge
    111
    Bedankte sich
    33
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    > ... Was möchtest du überhaupt machen?
    eine schöne praktische Karte

    eigentlich das Modul „mod_osmod“ von Martin Kröll umbauen. Das Modul speichert PINs ja in/als params in J!'s Modultabelle, womit sich die helper.php beschäftigt. Ich dachte erst, ergänzen/umbauen, aber …


    Ergänzen hautpsächlich mit einem dynamischen Kartenfeature:
    die Markerdaten sollen aus MySql-Tabellen kommen und ab bestimmter Zoomstufe
    je nach Karten-Ausschnitt und je nach ID geladen und bei Verschieben nachgeladen werden (http://switch2osm.org/using-tiles/ge...d-with-leaflet), so dass weniger Daten unterwegs sind und diese nicht im Quelltext stehen und je nach Kategoriepunkt ein Ikon bekommen könne.
    Das mit dem Karten-Ausschnitt und Ikon-Zuweisung scheint ja die leafletembed.js zu machen („file.js“). Diese linkt für die Abfrage auf eine findbybbox.php, die eine query, gefiltert nach Eck-Koordinaten und IDs macht und $GeoJson-Daten zurück gibt. Das $GeoJson kommt momentan aus irgend einem Grund nicht an (handcrafted, in einem Test ohne J!, kommt es an). (btw: Frage wäre, ob ich nicht sinniger die helper.php als findbybbox.php nehme …)

    Die Marker sollten auch bearbeitet werden können und in der Tabelle gespeichert werden. Dazu Leaflet-PlugIns wie Leaflet.EditableHandlers-master (https://github.com/kartena/Leaflet.EditableHandlers) oder Leaflet.draw-master (https://github.com/Leaflet/Leaflet.draw). Diese haben keine Speicherfertigkeit, aber ich denke, es gibt eine OSM-Geocoding-Tool, dass man anschauen kann. Leaflet-Karten sollen hier auch eine fullscreen-Modus haben.

    Langfristig sollten die Marker auf der Karte nach Zoomstufe, bei Überdeckung, zusammengefasst werden können. Dazu gibt es PlugIns wie leaflet.markercluster-src.js (https://github.com/Leaflet/Leaflet.markercluster) und andere.


    Ein nicht unwichtiger Punkt ist noch die Entscheidung für *eine* günstige JSON-Datenstruktur. mod_osmod hat eine kompliziertere als die flache, die findbybox.php liefert: $GeoJson .= "{\"name\":\"".$row['name']."\",\"lon\":\"".$row['longitude']."\",\"lat\":\"".$row['latitude']."\",\"details\":\"ID: ".$row['id']."\"}"; die ist ergänzbar und ich denk, die sollte wohl reichen, an der kann man sich orientieren. Mit JSON arbeiten m.E. ja die meisten Leaflet-js-Bibliotheken.



    Dann auch noch sekundär (weniger dringlich): ein statisches Kartenfeature: ein Verzeichnis, aus dem benannte kml-, gpx, geojson-Dateien gelsen und mit jew. zugewiesenen Ikons auf der Karte, zunächst als Legenden-Optino, dargestellt werden … dazu gibt’s ein Super-PlugIn „Leaflet.FileLayer-master -KML-GPX“ von makina-corpus.org (https://github.com/makinacorpus/Leaflet.FileLayer), fehlt hier bloß, eine Legendenfähigkeit.
    Die Legende als aufklappbares Js-tool, wie bei OSM.

    So denke ich, kommt man mit der Gesamtsoftware auch mit einem Modul zurecht, das man ja auch kopieren kann, so dass ein paar Karten möglich sind. Entwickelt schwerpunktmäßig für J!3, aber bis es 3.5 gibt, wollte ich es gern auch in einer J!2.5er einsetzen.

    Wie eine kleine Bachelor-Aufgabe?


    Erwartete Marker wären insgesamt wohl einige 10.000. Standard-Kartengröße im Content so 600-800px Größe (ggf.(!) mit Option auf Bearbeiten-Fullscreen, aber nur je nach Aufwand). Auch eine kleine 200px-Karte in Navigationsspalte, über die Daten gefiltert werden können, die im dann Contetnbereich gelistet werden.

    George

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein