Postion per Java Script bestimmen und dann an PHP senden

  • Hallo,


    ich möchte gerne die Postion des Nutzers einmalig per Javascript bestimmen und dann die Postion an PHP weitergeben mithilfe von jQuery. Ich kene mich jedoch mit javascript nicht gut aus, deshalb weiß ich leider nicht woran es scheitert, sobald ich den Code von dieser Seite jQuery einfüge funktioniert die Standortbestimmung nicht mehr und auch die Übergabe an PHP nicht mehr. Das Beispiel des HTML Teils habe ich von w3scools. Anbei mein Code:



    Ich bin was javascript angeht leider ein absoluter Anfänger, meine PHP Kenntnisse sind da schon etwas besser. Ich benötige Javascript nur für die Postionsbestimmung in meinem Projekt, deshalb hatte ich mich damit nicht so genau außeinandergesetzt. Ich habe mich nun mehr damit beschäftigt, konnte mein Problem aber leider trotzdem nicht lösen.

  • Es funktioniert nicht, weil Du die Parameter nicht richtig übergibst. Ich empfehle ein Objekt. Darin musst Du die Parameter so eintragen, wie Du sie im PHP einliest:

    Code
    $.post( "phpexample.php", {
        latitude: postion.coords.latitude,
        longitued: postion.coords.longitude
    }, function(return){
  • Da gibt es noch einige andere Probleme:

    • Schließende runde Klammer am Ende des $.post fehlt
    • Keine reservierten Wörter wie return bei Variablen- oder Parameternamen verwenden.
    • Das $.post musst Du in die Funktion showPosition verschieben, weil sonst die Variable position nicht definiert ist.
    • Schreibfehler postion
  • Erneut vielen Dank.


    • Schließende runde Klammer am Ende des $.post fehlt (hoffe das sie richtig gesetzt ist)
    • Keine reservierten Wörter wie return bei Variablen- oder Parameternamen verwenden. (habe die Funktion entfernt, werde mir den Tipp aber merken)
    • Das $.post musst Du in die Funktion showPosition verschieben, weil sonst die Variable position nicht definiert ist. (behoben)
    • Schreibfehler postion (behoben)

    Leider immer noch keien Funktion. Das neue Skript:


  • Da ist die Reihenfolge bei den schließenden Klammern falsch:

    Code
    function showPosition(position) {
        x.innerHTML = "Latitude: " + position.coords.latitude + 
        "<br>Longitude: " + position.coords.longitude;
        
        $.post( "phpexample.php", {
            latitude: position.coords.latitude,
            longitude: position.coords.longitude
        }); // hier war der Fehler
    }

    Mache dich mit der Console vertraut, dort werden solche Fehler angezeigt.

  • Erneut vielen Dnak, vor allem für die schnellen Antworten. Ich habe den Fehler behoben und die Konsole angeschmissen. Dort habe ich den Fehler gefunden, warum die php Datei nicht aufgerufen wird, bzw. die post Funktion.


    ReferenceError: $ is not defined[Weitere Informationen] htmlexample.html:27:2

    showPosition

    http://localhost/Test2/htmlexample.html:27:2


    In dieser Zeile steht: $.post( "phpexample.php", {


    Wenn ich das richtig verstanden habe, sollte die Varable $ doch durch jQuery was ich eingebunden habe definiert sein, oder bin ich da auf dem falschen Dampfer?

  • Das macht er bei mir nämlich nicht, er fragt nach meinem Standort, ich genehmige. Danach wird die Postion angezeigt. Nach der Positionsanzeige müsste er die php Datei aufrufen und die Daten erneut anzeigen, dies tut er jedoch nicht. Die Konsole zeigt keine Fehler an. In der Adresszeile des Browsers steht nämlich weiterhin die html Datei.

  • Zitat

    müsste er die php Datei aufrufen und die Daten erneut anzeigen

    Ersteres tut er, letzteres nicht von allein: Damit die Ausgabe des PHP-Skriptes auf der Seite sichtbar wird, musst Du die Callback-Funktion wieder hinzu fügen. In deren Eingangsparameter (z. B. out oder data statt return) steht dann die Ausgabe des PHP-Skriptes zu Verfügung. Überzeuge dich davon, indem Du sie mit console.log anzeigen lässt.

  • Ok, ich gucke mir das morgen mal in Ruge an, vielen Dank. Ich habe nämlich gerade keine Idee wie ich das implementierne soll, die alte Funktion aus dem Beispiel funktioniert nämlich nicht (oder ich mache was falsch :( ). Naja, ich gucke mir das morgen nochmal an und melde mich dann ggf. erneut, vielen Dank für die viele Hilfe bis jetzt!

  • So müsste es mit dem Callback aussehen:

  • Ich habe mich mit deinem Code beschäftigt, danke! Ich habe deine Beispiele nun eingefügt und weitere Code Teile hinzugefügt, nun läuft alles so wie ich es möchte. Vielen Dank, vor allen Dingen, dass ich als Anfänger akzeptiert wurde und du mir so gute Beispiele gezeigt hast und bei meiner Problem Lösung geholfen hast!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!