Zurück   Flashforum > Flash und Server > Flash und Datenbanken

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-07-2008, 19:05   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2008
Beiträge: 1
Fehler bei Übergabe von Variablen aus MySQL in Firefox

Hello @ All!

Ich möchte aus einer MySQL Datenbank Variablen an eine Flash-Seite übergeben.
Mit Hilfe der AS2-Funktion execute_queries wird ein String (app_context) an ein PHP-Skript gesendet. Dort wird mit dem "app_context" eine MySQL-Anfrage formuliert und die Ergebnisse (ca. 1700 Datensätze) als String (bzw. als XML) zusammengesetzt und in der Variablen "sql_result" zurückgegeben. Die Funktion "execute_queries" ruft nach erfolgreichem laden (also nach Übergabe des kompletten MySQL-Query Ergebnisses in XML-Form) die Funktion splitVarXML auf. Dort wird das zurückgegebene XML mit einer for ... in Schleife aufgeteilt. Ergebnis sind dann "dynamisch generierte Variablen". Das funktioniert in IE7 und Firefox 2 bzw. 3 mit Flashplayer <= 8 problemlos, unter Firefox 2 und 3 mit Flashplayer >= 9 dauert es eine Ewigkeit, bis die Verarbeitung (also offensichtlich die for...in-Schleife) abgeschlossen ist. Wenn die Daten aus einer lokalen MySQL-Datenbank stammen, dauert es auch in Firefox 2 und 3 mit Flashplayer >= 9 nur ein paar Sekunden.

Warum hängt sich Firefox bei diesem Vorgang auf?

Beispielseite: www.perimetrik.de/customers/ente

Hier der ActionScript-Code:
Code:
function execute_queries(query_contexts) {
    var query_context:String = String(query_contexts.shift());
    var load_vars:LoadVars = new LoadVars();
    load_vars.onLoad = function(eq_test) {
    if (eq_test) {
            splitVarXML(load_vars.sql_result, query_contexts);
        } else {
                // LOAD VARS NICHT ERFOLGREICH
        }
    };
    load_vars.app_context = query_context;
    file = "get_settings.php?cache="+(new Date().getTime());
    load_vars.sendAndLoad(file, load_vars, "POST");
}

function splitVarXML (varXML, query_contexts) {
        var pk_vars:XML = new XML();
        var settings_pointer: Number = 0;
        pk_vars.parseXML(varXML);
        pk_vars.ignoreWhite = true;
        temp_xml_array = new Array();
        temp_xml_array = pk_vars.firstChild.childNodes;
        for (settings_pointer in temp_xml_array) {
                var var_label:String = temp_xml_array[settings_pointer].attributes.label;
                switch(temp_xml_array[settings_pointer].attributes.valuetype) {
                    case "array":
                        [var_label] = temp_xml_array[settings_pointer].attributes.value.split(",");
                        killWhiteSpace(_level10[var_label])
                        break;
                    case "bool":
                        [var_label] = Boolean(Number(temp_xml_array[settings_pointer].attributes.value));
                        break;
                    case "number":
                        [var_label] = Number(temp_xml_array[settings_pointer].attributes.value);
                        break;
                    case "string":
                    case "color":
                        [var_label] = String(temp_xml_array[settings_pointer].attributes.value);
                        break;
                    case "reference":
                        [var_label] = _level10[temp_xml_array[settings_pointer].attributes.value];
                        break;
                    default:
                        [var_label] = temp_xml_array[settings_pointer].attributes.value;
                        break;
                }
            }
            if (query_contexts.length > 0) {
                execute_queries(query_contexts);
            } else {
                var bool_settings_queries_finished:Boolean = true;
            }
}
und hier das PHP-Script:

PHP-Code:
<?php
     $xml 
'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'
        
'<settings>';
     for (
$i=0;$i<$records;$i++) {
        
$ergebnis[$i]=mysql_fetch_array($result);
        
$xml.= '<setting';
        
$xml.= ' label="'.$ergebnis[$i][label].'"';
        
$xml.= ' value="'.$ergebnis[$i][value].'"';
        
$xml.= ' valuetype="'.$ergebnis[$i][valuetype].'"';
        
$xml.= '/>';
    } 
    
$xml.= '</settings>';
    echo 
'&sql_result='.$xml.'&';
?>
Vielen Dank für Anregungen und Tipps!
jensoweber ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 00:15 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele