Ankündigung

Einklappen
Keine Ankündigung bisher.

Wert aus Input übergeben ohne Formular

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wert aus Input übergeben ohne Formular

    Hallo liebe PHP Freunde,

    und zwar stehe ich vor einem Problem,

    ich möchte gern einen bzw zwei Werte aus einem Input übergeben allerdings kann ich keine _POST und keine _GET Variante anwenden da sich der Input in keinen Formular befindet.

    Kurze Erklärung:

    Ich lese mit folgenden Script die Geokoordinaten aus, diese werden in einen Input ausgegeben, nun suche ich eine Möglichkeit die ausgegebenen Koordinaten per GET bzw _POST eine Seite weiter zu geben, ich denke per _GET ist die einfacher Variante.

    Mein genaues Problem liegt jetzt daran das sich dieses Script nicht in einem Formular befindet und das auch nicht möglich ist.

    Hier das Script:

    PHP-Code:
    <script>
    var 
    x=document.getElementById("demo");
    function 
    getLocation()
      {
      if (
    navigator.geolocation)
        {
        
    navigator.geolocation.getCurrentPosition(showPosition,showError);
        }
      else{
    x.innerHTML="Geolocation is not supported by this browser.";}
      }
    function 
    showPosition(position) {
        
    x.innerHTML "<input name=\"geo_br\" id=\"geo_br\" type=\"text\" value=\"  " position.coords.latitude "  \"><br><input name=\"geo_la\" id=\"geo_la\" type=\"text\" value=\"  " position.coords.longitude " \">"

        
    }
    function 
    showError(error)
      {
      switch(
    error.code
        {
        case 
    error.PERMISSION_DENIED:
          
    x.innerHTML="User denied the request for Geolocation."
          
    break;
        case 
    error.POSITION_UNAVAILABLE:
          
    x.innerHTML="Location information is unavailable."
          
    break;
        case 
    error.TIMEOUT:
          
    x.innerHTML="The request to get user location timed out."
          
    break;
        case 
    error.UNKNOWN_ERROR:
          
    x.innerHTML="An unknown error occurred."
          
    break;
        }
      }
    </script> 
    Kann mir hier jemand weiterhelfen?

    Habe schon viel Gegoogelt allerdings ohne Erfolg..

    Danke vorab.

  • #2
    PHP-Code:
    <a href="url+Parameter"><input></a
    Würde mir spontan dazu einfallen, oder einfach so nen Link daneben kleben.


    Warum kannst du daraus kein Formular machen?


    PHP-Code:
    <input type="text" onclick="location.href='url+Parameter'"
    Besser als die Link-Tags ums input zu wickeln
    [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
    [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

    Kommentar


    • #3
      Vielleicht hilft dir "AJAX" als Stichwort weiter. Am einfachsten noch mit "jQuery"

      Kommentar


      • #4
        Oder besser noch: "angular"

        Kommentar


        • #5
          Zitat von rkr Beitrag anzeigen
          Oder besser noch: "angular"
          Das ist dann aber schon mehr "advanced" und nicht mehr so ganz "anfängerfreundlich"

          Kommentar


          • #6
            Leider bin ich immernoch nicht weitergekommen, ich hab unten nochmal Detailliert den ganzen Code aufgeführt.

            Beim Aufrufen der seite.php wird folgendes Element geladen, dies nimmt allerdings 3-4 Sekunden in Anspruch zudem muss der Nutzer die Freigabe der Ortung bestätigen.

            PHP-Code:
            <script
            var 
            x=document.getElementById("demo"); 
            function 
            getLocation() 
              { 
              if (
            navigator.geolocation
                { 
                
            navigator.geolocation.getCurrentPosition(showPosition,showError); 
                } 
              else{
            x.innerHTML="Geolocation is not supported by this browser.";} 
              } 
            function 
            showPosition(position) { 
                
            x.innerHTML "<input name=\"geo_br\" id=\"geo_br\" type=\"text\" value=\"  " position.coords.latitude "  \"><br><input name=\"geo_la\" id=\"geo_la\" type=\"text\" value=\"  " position.coords.longitude " \">" 

                 

            function 
            showError(error
              { 
              switch(
            error.code)  
                { 
                case 
            error.PERMISSION_DENIED
                  
            x.innerHTML="User denied the request for Geolocation." 
                  
            break; 
                case 
            error.POSITION_UNAVAILABLE
                  
            x.innerHTML="Location information is unavailable." 
                  
            break; 
                case 
            error.TIMEOUT
                  
            x.innerHTML="The request to get user location timed out." 
                  
            break; 
                case 
            error.UNKNOWN_ERROR
                  
            x.innerHTML="An unknown error occurred." 
                  
            break; 
                } 
              } 
            </script> 
            So nun erhalte ich durch + position.coords.latitude + & + position.coords.longitude +
            den Breiten und Längengrad. Diese 2 Koordinaten benötige ich allerdings zur verarbeitung erst auf seite2.php

            Seite2.php sieht so aus, dort habe ich bereits andere Koords die aus meiner DB abfragen und damit möchte ich die Entfernung berechnen. Das klappt auch alles bis auf das ich am scheitern bin was die Übergabe von seite1.php auf seite2.php angeht.

            Im Notfall würde ich mich auch mit einer _GET Variante zufrieden geben allerdings ist hier wieder das Problem das ich von seite1.php auf seite2.php über einen Radiobutton gelang und ich vermutlich hier vermutlich nicht mit einem Formular normal arbeiten kann. Da die Weiterleitung von diesem Radiobutton (es handelt sich um 4 verschiedene Buttons) über Javascript läuft.

            Ich habe gehört von die Koordinaten in der _SESSION abzuspeichern? Wie speichere ich die dort ab und lese Sie wieder aus?

            Danke euch vielmals vorab.

            Kommentar


            • #7
              ich möchte gern einen bzw zwei Werte aus einem Input übergeben allerdings kann ich keine _POST und keine _GET Variante anwenden da sich der Input in keinen Formular befindet.
              Impossible... ob du nun, wie vorgeschlagen, AJAX verwendest, oder per Javascript eine URL mit GET Parametern zusammenschraubst, oder eine FORM bastelst (mit welchen Mitteln auch immer), es kommt alles auf das gleiche raus...
              Aus der Sicht des PHP Scripts ist das einerlei, aber ohne POST oder GET das geht es nicht. Punkt.
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar


              • #8
                Zitat von alxy Beitrag anzeigen
                Das ist dann aber schon mehr "advanced" und nicht mehr so ganz "anfängerfreundlich"
                Interessanterweise doch. Angular ist unwesentlich einstiegserschwert und ist in dem Punkt mit jQuery eigentlich gleich auf. Es wundert mich irgendwo, dass gerade Neulinge Angular als kompliziert empfinden, ist es doch php von der grundlegenden Funktionsweise sehr ähnlich, dabei aber besser organisiert und auch recht gut dokumentiert.

                Kommentar

                Lädt...
                X