Seite 1 von 4 1234 LetzteLetzte
Ergebnis 1 bis 15 von 48
Like Tree1Likes

Thema: AJAX Benutzerauflösung abspeichern geht nicht

  1. #1
    zitrus ist offline Jungspund
    registriert
    20-07-2016
    Beiträge
    20

    AJAX Benutzerauflösung abspeichern geht nicht

    Servus zusammen,
    ich versuche in meiner Ausgangsdatei mittels JavaScript die Benutzerauflösung zu ermitteln. Die so ermittelten Werte will ich mit AJAX an eine weitere PHP-Datei (resolution.php) schicken und diese dort in zwei Variablen speichern (Breite, Höhe). Allerdings klappt dies nicht und ich hab trotz stundenlanger Suche den Fehler nicht gefunden. Es sei noch gesagt, dass ich es mit XAMPP teste.

    Ausgangsdatei:
    Code:
    <script type="text/javascript">
    var http = new XMLHttpRequest();
    var width = screen.width;
    var height= screen.height;
    var url = "test/resolution.php";
    var params = "breite="+width+"&hoehe="+height+"";
    alert (url+"?"+params);
    http.open("GET", url+"?"+params, false);
    http.send();
    </script>
    
    <?php 
    include '/resolution.php';
    
    $breite = setBreite();
    $hoehe = setHoehe();
    
    echo "Breite: $breite";
    echo "Hoehe: $hoehe";
    
    ?>
    resolution.php:
    Code:
    <?php
    $breite =  $_GET["breite"];
    $hoehe =  $_GET["hoehe"];
    
    function setBreite(){return (int)$breite;}
    function setHoehe(){return (int)$hoehe;}
     ?>
    Folgende Ausgabe bekomme ich dann:
    Code:
    Notice: Undefined index: breite in C:\xampp\htdocs\test\resolution.php on line 6
    
    Notice: Undefined index: hoehe in C:\xampp\htdocs\test\resolution.php on line 7
    
    Notice: Undefined variable: breite in C:\xampp\htdocs\test\resolution.php on line 10
    
    Notice: Undefined variable: hoehe in C:\xampp\htdocs\test\resolution.php on line 11
    Breite: 0Hoehe: 0
    Zum testen habe ich "alert (url+"?"+params);" ausgeführt. Der String lautet: localhost/test/resolution.php?breite=2560&hoehe=1440 und ist somit korrekt aber er setzt kein $breite = $_GET["breite"] z.B. In der Pfadangabe habe ich auch schon mehrere Schreibweisen probiert, von nur "resolution.php" zu "test/resolution.php" bis zum "localhost/test/resolution.php" etc. Kann es vielleicht daran liegen, dass ich am Localhost keine AJAX Funktionalität testen kann? Vielen Dank schon mal für eure Hilfe!
    Geändert von mikdoe (27-02-2017 um 16:37 Uhr) Grund: Gelöst gesetzt

  2. #2
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.569

    AW: AJAX Benutzerauflösung abspeichern geht nicht

    was ist im js "screen"? das sollte auch schon vorher in der browserkonsole als undefined angezeigt werden.
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  3. #3
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.619

    AW: AJAX Benutzerauflösung abspeichern geht nicht

    das php-script deiner "Ausgangsdatei" wird auf dem server verarbeitet, raus kommt html mit js. das html mit js wird an den client gesendet und dann im browser verarbeitet
    also beim aufruf von Ausgangsdatei.php in der adresszeile des browsers wird ein request an den server gesendet, der php-interpreter interpretiert dann folgenden code
    Code:
    <script type="text/javascript">
    var http = new XMLHttpRequest();
    var width = screen.width;
    var height= screen.height;
    var url = "test/resolution.php";
    var params = "breite="+width+"&hoehe="+height+"";
    alert (url+"?"+params);
    http.open("GET", url+"?"+params, false);
    http.send();
    </script>
    
    <?php 
    $breite =  $_GET["breite"];
    $hoehe =  $_GET["hoehe"];
    
    function setBreite(){return (int)$breite;}
    function setHoehe(){return (int)$hoehe;}
    
    
    $breite = setBreite();
    $hoehe = setHoehe();
    
    echo "Breite: $breite";
    echo "Hoehe: $hoehe";
    
    ?>
    da du keine get-parameter mitgibst ist $_GET["breite"] und $_GET["hoehe"] undefined

    dann erst würde dein generiertes html+js an den client gesendet werden und dann erst der ajax-request erfolgen der nur deine resulution.php interpretieren würde. dort würden aber nur 2 variablen gesetzt werden die aber nicht verwendet werden. also es würde eigentlich nichts passieren.
    den output der resulution.php (also nichts - außer dem header) würde wieder an den client gesendet werden, der ihn aber auch nicht auswertet

    - - - Aktualisiert - - -

    Zitat Zitat von mikdoe Beitrag anzeigen
    was ist im js "screen"? das sollte auch schon vorher in der browserkonsole als undefined angezeigt werden.
    https://developer.mozilla.org/en-US/.../Window/screen
    und selbst wenn, nicht vorher, sondern hinterher

  4. #4
    zitrus ist offline Jungspund
    registriert
    20-07-2016
    Beiträge
    20

    AW: AJAX Benutzerauflösung abspeichern geht nicht

    Für mein Projekt brauch ich "nur" noch die Benutzerauflösung, andere Informationen kann ich rein serverseitig abgreifen. Ich kenne mich leider nicht allzu sehr mit JS & AJAX aus, ich hangel mich eher von Problem/Lösung zu Problem/Lösung...

    Was meinst du mit "da du keine get-parameter mitgibst"? Ich hole mir die jeweiligen Parameter über Screen.Height/Width und speichere diese; anschließend bastel ich mir ne url zusammen mit name=value format:

    HTML-Code:
    var http = new XMLHttpRequest();
    var width = screen.width;
    var height= screen.height;
    var url = "test/resolution.php";
    var params = "breite="+width+"&hoehe="+height+"";
    Ich weiß leider nicht, wie ich vorgehen soll damit das Problem behoben ist... Zwar verstehe ich deine Erklärung prinzipiell, aber was ich jetzt konkret wo ändern muss ist mir noch schleierhaft :/
    Geändert von mikdoe (20-07-2016 um 22:16 Uhr) Grund: Code Tags

  5. #5
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.569

    AW: AJAX Benutzerauflösung abspeichern geht nicht

    sorry für meine falsche antwort, das war mir nicht geläufig. wie lange gibt es das schon?
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  6. #6
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.619

    AW: AJAX Benutzerauflösung abspeichern geht nicht

    Zitat Zitat von zitrus Beitrag anzeigen
    Was meinst du mit "da du keine get-parameter mitgibst"? Ich hole mir die jeweiligen Parameter über Screen.Height/Width und speichere diese; anschließend bastel ich mir ne url zusammen mit name=value format:
    beim ajax-request, der sinnlos ist, weil er nichts macht. da sind wir aber noch lange nicht. der fehler kommt ja nicht vom ajax-request, sondern vom request der "ausgangsseite". wenn du die "ausgangsdatei" im browser mit ausgangsdatei.php?width=33&hoehe=77 aufrufst, kommen keine fehler

    Zitat Zitat von zitrus Beitrag anzeigen
    Ich weiß leider nicht, wie ich vorgehen soll damit das Problem behoben ist... Zwar verstehe ich deine Erklärung prinzipiell, aber was ich jetzt konkret wo ändern muss ist mir noch schleierhaft :/
    dein beispiel ist so wie es ist unsinnig. es ist unlogisch clietseitig breite und höhe auszulesen, diese dann an den server zu senden, damit dieser die werte wieder an den client sendet.

  7. #7
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.612

    AW: AJAX Benutzerauflösung abspeichern geht nicht

    Warum willst du die Bildschirmgröße überhaupt auf dem Server wissen? Die interessiert noch nicht einmal auf dem Client so wirklich, da das Browserfenster ja ganz andere Maße haben kann. Und für responsive Design gibt es media-queries.

  8. #8
    zitrus ist offline Jungspund
    registriert
    20-07-2016
    Beiträge
    20

    AW: AJAX Benutzerauflösung abspeichern geht nicht

    Ok... nochmal zu meinem eigentlichen Ziel: Ich möchte die aktuelle Auflösung des Benutzers ermitteln (clientseitig) und diese dann serverseitig verarbeiten & in einer Datenbank abspeichern. Dafür rufe ich die ausgangsdatei mit dem JS Code und dem AJAX Aufruf um asynchron die Informationen über Höhe & Breite mit der GET Methode zu meiner Resolution.php zu schicken. Eine Rückgabe vom Server an den Client soll nicht erfolgen. Am einfachsten wäre es natürlich gewesen, im JS Teil die Werte zu ermitteln und einer PHP Variable zuzuweisen, was aber leider nicht geht.
    Ich hoffe, du verstehst auf was ich hinaus möchte.

  9. #9
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.619

    AW: AJAX Benutzerauflösung abspeichern geht nicht

    dann lass einfach den teil der probleme macht in deiner "ausgangsdatei" weg

  10. #10
    zitrus ist offline Jungspund
    registriert
    20-07-2016
    Beiträge
    20

    AW: AJAX Benutzerauflösung abspeichern geht nicht

    Es geht mir nicht um irgendwelche Designthemen, sondern um statistische Auswertungen. Aus diesem Grund möchte ich die eingestellte Auflösung des Benutzers auch in meiner Datenbank abspeichern.

    @tsseh:
    Was meinst du damit genau? Ich muss doch einen AJAX Aufruf machen, damit mir der Client die Höhe & Breite an meine Resolution.php sendet. Oder etwa nicht?

  11. #11
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.619

    AW: AJAX Benutzerauflösung abspeichern geht nicht

    Zitat Zitat von zitrus Beitrag anzeigen
    Was meinst du damit genau? Ich muss doch einen AJAX Aufruf machen, damit mir der Client die Höhe & Breite an meine Resolution.php sendet. Oder etwa nicht?
    ja, der ajax teil macht ja auch keine probleme. probleme macht der rest:
    Code:
    <?php 
    $breite =  $_GET["breite"];
    $hoehe =  $_GET["hoehe"];
    
    function setBreite(){return (int)$breite;}
    function setHoehe(){return (int)$hoehe;}
    
    
    $breite = setBreite();
    $hoehe = setHoehe();
    
    echo "Breite: $breite";
    echo "Hoehe: $hoehe";
    
    ?>

  12. #12
    zitrus ist offline Jungspund
    registriert
    20-07-2016
    Beiträge
    20

    AW: AJAX Benutzerauflösung abspeichern geht nicht

    Ich hab mir deinen ersten Kommentar mehrmals durchgelesen. Liegt es vll daran, dass ich in der Ausgangsdatei keine Überprüfung vornehmen, ob eine Hilfsvariable (die ich in der Resolution setze sobald der Ajax-Request kommt z.B. $ajax=1 gesetzt ist? Sobald z.B. $ajax=1 gesetzt wurde, soll auch

    Code:
    Ausgangsdatei:
    include "/resolution.php";
    
    if (isset($ajax)){
    $breite = setBreite();
    $hoehe = setHoehe();
    
    echo "Breite: $breite";
    echo "Hoehe: $hoehe";
    }
    Code:
    Resolution.php:
    
    <?php
    if(isset($_GET["breite"])){
    $breite =  $_GET["breite"];
    $hoehe =  $_GET["hoehe"];
    $ajax=1;
    }
    function setBreite(){return (int)$breite;}
    function setHoehe(){return (int)$hoehe;}
     ?>

    ausgeführt werden?

    - - - Aktualisiert - - -

    Ok, so klappts auch nicht...


    Was meinst du mit "lass den Teil der Probleme macht weg"? Ich muss die Werte irgendwie von der Resolution.php wieder zu meiner Ausgangsdatei bekommen, da ich dort weitere Werte ermittle und diese in einem Datensatz speichere. Also brauche ich ja eine Funktion, die mir die gespeicherten Werte in der Resolution.php auch wieder an die Ausgangsdatei zurückgibt. Ich weiß, ich stell mich an wie der größte Depp aber ich steh aufm Schlauch -.-
    Geändert von zitrus (21-07-2016 um 11:57 Uhr)

  13. #13
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.619

    AW: AJAX Benutzerauflösung abspeichern geht nicht

    Zitat Zitat von zitrus Beitrag anzeigen
    sobald der Ajax-Request kommt z.B. $ajax=1 gesetzt ist? Sobald z.B. $ajax=1 gesetzt wurde, soll auch
    der Ajax-Request geht aber nicht an die "Ausgangsdatei", sondern an die Resolution.php. deswegen ist es sinnlos in der "Ausgangsdatei" die get-parameter breite und hoehe auszulesen die du ja nicht an die "Ausgangsdatei" übergibst. erst beim darauffolgenden Ajax-Request werden breite und hoehe mitgesendet - an die Resolution.php. dort kannst du sie auslesen und in der datenbank speichern

  14. #14
    zitrus ist offline Jungspund
    registriert
    20-07-2016
    Beiträge
    20

    AW: AJAX Benutzerauflösung abspeichern geht nicht

    Gibt es somit keine Möglichkeit die Werte in meine Ausgangsdatei zu bekommen? Ich ermittle dort schon andere Werte wie z.B. Sprache, OS, Browser etc...

  15. #15
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.619

    AW: AJAX Benutzerauflösung abspeichern geht nicht

    Zitat Zitat von zitrus Beitrag anzeigen
    Gibt es somit keine Möglichkeit die Werte in meine Ausgangsdatei zu bekommen?
    client oder serverseitig?
    clientseitig ermittelst du ja dort breite und hoehe, hast sie also schon.
    serverseitig kannst du den request anstelle an resolution.php auch an Ausgangsdatei.php senden. musst dann aber prüfen(eigentlich sowieso), ob die get-parameter gesetzt sind. abhängig davon kannst du mit den werten arbeiten oder nicht. ob das sinnvoll ist, ist eine andere frage.

    - - - Aktualisiert - - -

    Zitat Zitat von zitrus Beitrag anzeigen
    Was meinst du mit "lass den Teil der Probleme macht weg"?
    in die ausgangsdatei inkludierst du die Resolution.php. die Resolution.php erwartet aber get-parameter. die get-parameter werden aber nicht an die ausgangsdatei übergeben, sondern erst im 2. aufruf über ajax an die Resolution.php.

    Zitat Zitat von zitrus Beitrag anzeigen
    Ich muss die Werte irgendwie von der Resolution.php wieder zu meiner Ausgangsdatei bekommen, da ich dort weitere Werte ermittle und diese in einem Datensatz speichere.
    und da fängt der hamster an zu humpeln. wenn du die werte in der Ausgangsdatei benötigst, musst du diese an die Ausgangsdatei senden. du weisst was ein request ist? und was bei einem request an eine php-datei passiert?

    Zitat Zitat von zitrus Beitrag anzeigen
    Also brauche ich ja eine Funktion, die mir die gespeicherten Werte in der Resolution.php auch wieder an die Ausgangsdatei zurückgibt.
    nein, du inkludierst die Resolution.php ja in die Ausgangsdatei. du weisst was ein include macht?

    - - - Aktualisiert - - -

    https://de.wikipedia.org/wiki/PHP#Funktionsweise

Seite 1 von 4 1234 LetzteLetzte

Ähnliche Themen

  1. Cufon + AJAX (Mootools) geht nicht
    Von lomex im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 03-02-2011, 15:47
  2. Ajax - responseText im IE geht nicht
    Von Igibob im Forum JavaScript
    Antworten: 9
    Letzter Beitrag: 24-06-2010, 21:35
  3. gleiche seite mit ajax aufrufen geht nicht
    Von baileys-deluxe im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 30-06-2009, 13:24
  4. Ajax Request geht nicht immer
    Von dezer im Forum JavaScript
    Antworten: 10
    Letzter Beitrag: 20-06-2008, 19:06
  5. ajax - lightbox geht nicht mehr??
    Von baileys-deluxe im Forum JavaScript
    Antworten: 0
    Letzter Beitrag: 09-05-2008, 08:42

Lesezeichen

Berechtigungen

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