thebubble: Irgendwas stimmt nicht-> AJAX Request

Huhu,
als ich habe ein Problem.
Hier erstmal der Quelltext: http://phpfi.com/247691
So und zwar liegt mein Problem im folgenden:
Ich möchte per AJAX auf Bildgröße und Kommentar zugreifen.
Meine "Schnittstelle" in dem Sinne sind die beiden PHP-Dateien "get_pic_comment.php" und "get_pic_size.php", bei denen wird alles richtig gemacht und die Ausgabe der PHP-Dateien stimmt auch.

Wenn ich dann den ResponseText von meinem HTTP-Request bekomme speichere ich den in in der Variable b. Wenn ich mit "alert(b);" diesen Text dann ausgebe ist es auch richtig. Nur wenn ich ihn dann benutze (um die Größe einer Tabelle festzulegen) wird meistens der falsche genommen.
Ich nehme an, dass der vorherige Response Text genommen wird.
Bin mir aber nicht sicher.

cuz bubble

  1. hi,

    Wenn ich dann den ResponseText von meinem HTTP-Request bekomme speichere ich den in in der Variable b. Wenn ich mit "alert(b);" diesen Text dann ausgebe ist es auch richtig. Nur wenn ich ihn dann benutze (um die Größe einer Tabelle festzulegen) wird meistens der falsche genommen.
    Ich nehme an, dass der vorherige Response Text genommen wird.

    Du verwendest b an allen Stellen als globale Variable - also logisch, dass da jeweils der Wert drinsteht, den du zuletzt reingeschrieben hast.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Du verwendest b an allen Stellen als globale Variable - also logisch, dass da jeweils der Wert drinsteht, den du zuletzt reingeschrieben hast.

      Ja genau da liegt ja das Problem ...
      Es wird dann nich das richtige genommen wenn "document.getElementById("epic").innerHTML=a+b+c;" ausgeführt wird ...

      1. hi,

        Ja genau da liegt ja das Problem ...
        Es wird dann nich das richtige genommen wenn "document.getElementById("epic").innerHTML=a+b+c;" ausgeführt wird ...

        Ja also - verwende keine globalen Variablen, sondern sieh zu, dass du sie mit dem jeweiligen Request verbindest.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Ja also - verwende keine globalen Variablen, sondern sieh zu, dass du sie mit dem jeweiligen Request verbindest.

          Anfangs hatte ich ja das so das einfach das <span> mit der id "epic" einfach erweitert wird aber dann wird der Anfang irgendwie immer weg genommen ... (also "<table background= ..." und dann erst ab "cellpadding=0 cellsapcing=0 ... usw" ausgegeben ...

          1. Hab das Problem jetzte auf nem ganz anderen weg gelöst... ich gebe einfach per PHP schon alle HTML-Tags aus^^
            jetzt gehts trotzdem danke ;)

      2. Hmm hab folgendes noch vergessen zu sagen:
        Die Bilder heißen ja "Fotos (1).jpg" bis "Fotos (6).jpg"
        Alle Bilder bis auf "Fotos (3).jpg" haben eine Auflösung vonn 800x600.
        "Fotos (3).jpg" hat eine von 600x800,
        Ich habe 2 Buttons, und eine Variable "id", welche das aktuelle Bild enthält.
        Der eine dekrementiert "id" und der andere inkrementiert "id" und läd dann das Bild. usw.

        Wenn ich von Bild 4 zu Bild 3 gehe hat aber Bild 3 auch eine Auflösung von 800x600 (eigentlich müsste das 600x800 sein :( )
        Wenn ich dann von Bild 3 zu 2 gehe hat aufeinmal Bild 2 fälschlicher Weise eine Auflösung von 600x800 (also die von Bild 3)

        Wenn ich von Bild 2 zu Bild 3 und dann zu Bild 4 gehe haben die Bilder folgende Auflösungen:

        Bild 2 800x600
        Bild 3 800x600
        Bild 4 600x800

        Und genau da liegt mein Problem. Wenn ich dann immer per alert b ausgebe dann wird das richtige ausgegen und wenn ich dann direkt nach dem alert b benutze wird was Falsches ausgegeben ... :'(

        cuz bubble

  2. n'abend,

    Hier erstmal der Quelltext: http://phpfi.com/247691

    a) Was sollen die globalen Variablen? (Zeilen 6-9, 10 kann man ja noch irgendwie nachvollziehen)
    b) Warum brauchst du zwei Requests um deine Comments und Dimensionen zu laden? Willst du das nicht lieber in einem Request machen?
    c) Warum lässt du diese Requests asynchron laufen? Hier kannst du doch durchaus auf eine Synchrone Verbindung setzen. Dadurch kann deine set_size() Funktion (welche besser get_size() oder gar getSize() heißen sollte) die entsprechenden Werte direkt zurückgeben - dadurch sparst du dir den "resultHandler-Callback".

    weiterhin schönen abend...

    --
    Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
    sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|