Problem mit setInterval...oder Variablenübergabe PHP/Flash

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

  • Problem mit setInterval...oder Variablenübergabe PHP/Flash

    Hi,

    ich bin gerade dabei, einen Chat in Flash / PHP zu erstellen.

    Auf der Hauptbühne in Bild 1 habe ich folgende Komponenten:

    1 dynamisches Textfeld zur Ausgabe des Textes -> Variable 'ausgabe_str'
    1 dynamischen Textfeld zur Eingabe -> Variable 'eingabe_str'

    So, ich möchte nun, das wenn der User einen Text eingibt und auf Enter bzw. einen Button klickt, der Text im Textfeld ausgabe_str angezeigt wird und gleichzeitig der gesamte Inhalt des Textfeldes via PHP in einer MySQL-Datenbank gespeichert wird. Soweit so gut, das funktioniert bisher auch wunderbar.

    Jetzt möchte ich natürlich auch den Text des Chatpartners angezeigt bekommen, das heisst also, ich muss die ebenfalls in der MySQL gepspeicherten daten abrufen und die Das textfeld ausgabe_str aktualisieren.

    Ich dachte mir, ich verwende dazu das Object loadVars(), schreib dazu eine Funktion und rufe diese Funktion via 'setIntervall(neuladen, 3000)' halt alle 3 Sekunden auf.

    Es funktioniert, das heisst PHP ruft ordnungsgemäss die Daten aus der Datenbank ab, nur bei der Übergabe läuft irgendwas schief...Es kommt nichts im Textfeld an.... Ich bin mittlerweile ziemlich verzweifelt, sitze schon seit gestern Abend an diesem Problem und habe x-Möglichkeiten probiert...ohne Erfolg.

    Hier mal mein AS:

    Code:
    neuladen();
    setInterval(neuladen,3000);
    
    cp_image.load("../images/profiles/user/"+_root.touser+"/"+_root.touser+".jpg");
    own_image.Load("../images/profiles/user/"+_root.ownid+"/"+_root.ownid+".jpg");
    chatinfo_str = "Du chattest mit "+_root.touser;
    
    lv = new LoadVars();
    lv.onLoad = function(geladen) {
        if(geladen) {
            trace(this)
        }
    } 
    
    function neuladen() {
        lv.action='get';
        lv.chatid = _root.chatid;
        lv.sendAndLoad('newmessage.php?cache='+(new Date().getTime()),lv,'POST');
    };
    
    // Speichern in MySQL
    _root.onEnterFrame = function() {
        if (Key.isDown(Key.ENTER)) {
            if (eingabe.text ne "") {
                ausgabe_str += _root.ownid+'> '+eingabe_str+'\n';
                ausgabe.scroll = ausgabe.maxscroll;
                lv.action = 'save';
                lv.chatid = _root.chatid;
                lv.save = ausgabe_str;
                lv.sendAndLoad('newmessage.php?cache='+(new Date().getTime()), lv, 'POST');
                eingabe.text = "";
            }
        }
    };
    Und hier das aufgerufene PHP-Sript:

    PHP-Code:
    <?php
    require("$DOCUMENT_ROOT/sec/inc/config.inc.php");
    require(
    "$DOCUMENT_ROOT/sec/inc/functions.inc.php");

    //Neue Message speichern
    if($_POST["action"] == "save" && $_POST["chatid"] <> ""){
    conn_db("chat");
    $save=$_POST["save"];
    $chatid=$_POST["chatid"];
    $update="UPDATE currentchats SET chattext='$save' WHERE chatid='$chatid'";
    $updquery=mysql_query($update$connect);
    echo 
    "&chatid=$chatid&";
    mysql_close($connect);
    }

    //Messagefenster aktualisieren / an Flash weitergeben
    if($_POST["action"] == "get" && $_POST["chatid"] <> ""){
    conn_db("chat");
    $chatid=$_POST["chatid"];
    $getmessage="SELECT * FROM currentchats WHERE chatid='$chatid'";
    $getquery=mysql_query($getmessage$connect);
    $result=mysql_fetch_array($getquery);
    $ausgabe=$result[chattext];
    echo 
    "
    &ausgabe_str=
    $ausgabe&
    &chatid=
    $chatid&";
    mysql_close($connect);
    }
    ?>
    Was ist daran verkehrt ??? Die Speicherung funktioniert doch auch, wieso dann nicht auf dieselbe Art und Weise das Abrufen ????

    Ich hoffe das mir jemand helfen kann.

    Grüsse
    Progo

  • #2
    Hallo

    ich bin noch nicht vertraut mit den datenbanken, aber mit der Variablen übergabe kann ich Dir vielleicht helfen.


    also im php: sendest Du die Variable:

    echo "&ausgabe_str=".$ausgabe."&";
    (bin nicht ganz sicher, vielleicht geht Deines auch)
    echo "&ausgabe_str=$ausgabe&"

    im swf musst du jetzt nur noch in der funktion in welcher Du alle 3 sek. aufrufst. (Ich sehe bei Dir nicht welche..)

    Empfang = function(){
    AusgabeTextfeld.text = ausgabe_str
    };


    müsste eigentlich so gehen.
    Ich wünsche euch allen eine wunderbare Zeit in Liebe Lust und Euphorie

    Kommentar

    Lädt...
    X