Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehler bei Übergabe von Variablen aus MySQL in Firefox

Einklappen

Neue Werbung 2019

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

  • 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: Restaurant EN'TE | Martinsplatz 2a | 53113 Bonn 0228 639322 | Webdesign by PERIMETRIK Bonn

    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

    --

    Greetz, J!

Lädt...
X