tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
380
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    WACSF WACSF ist offline Mitglied Gold
    Registriert seit
    Aug 2004
    Beiträge
    120
    Hallo allerseits.

    Ich habe ein Problem mit dem Speichern von Daten.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    
    var plan = new Array();
     
    function query(){
                connect();
                xmlhttp.open("GET", "http://adresse.php",true);
                xmlhttp.onreadystatechange=function() {
                    if (xmlhttp.readyState==4) {
                        var code = xmlhttp.responseText;    
                        var preg = /\b([0-9]{2}.[0-9]{2}.[0-9]{2})\b/g;
                        var test = code.match(preg);
                        if (test){      
                            for (var i=0; i<test.length; i++)
                                arr.push(test[i]);                  
                        }
                        
                        var tempcode = code.split("Speiseplan n&auml;chste Woche");
                        var preg2 = /<.*?>/gi;
                        tempcode[1] = tempcode[1].split(/Montag, |Dienstag, |Mittwoch, |Donnerstag, |Freitag, |Gemischte/g);
                        for(var i = 1; i < tempcode[1].length; i++){
                            
                            tempcode[1][i] = tempcode[1][i].replace(preg2,'');
                            tempcode[1][i] = tempcode[1][i].replace(/^\s*/gi,'');
                            tempcode[1][i] = tempcode[1][i].replace(/ +/gi,' ');
                            tempcode[1][i] = tempcode[1][i].replace(/&nbsp;|&euro;|\f|\n|\r|\t|\v/gi,'');       
                            tempcode[1][i] = tempcode[1][i].split(/\d,\d\d\s*\S\s*\d,\d\d/g);
                            
                            //document.write(tempcode[1][1].length)
                            //for(var i = 0; i < tempcode[1][1].length; i++)
                            var datum = tempcode[1][i][0].match(preg);
                            
                            for(var a = 0; a < tempcode[1][1].length; a++){
                                tempcode[1][i][a] = tempcode[1][i][a].replace(preg,'');
                                tempcode[1][i][a] = tempcode[1][i][a].replace(/^\s*/gi,'');
                                plan.push(tempcode[1][i][a]);                       
                            } // Ende for
                                document.write(plan.length+"<br>")
                        } // Ende for
                            // DAS HIER KANN ICH NICHT AUSGEBEN, BZW. KOMMT DA NICHTS. WIESO?
                            document.write(plan[1])
                            document.write(plan[2])
                            document.write(plan[3])                 
                    } // Ende if            
                }   // Ende function        
                xmlhttp.send(null);
                
            }// Ende function

    Das Problem ist, dass er mir die Daten nicht persistent im Array plan speichert - WIESO?
    Setzt der da nur eine Referenz, die nach der FOR Schleife wieder weg ist?
    Ich finde aber das Problem einfach nicht.

    Schöne Grüße,
    WACSF
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Bist du sicher, dass der Array leer ist, oder wird nur nichts ausgegeben?

    Ist dir bekannt, was write(), sofern es nach beendetem Ladevorgang eines Dokumentes darauf angewendet wird, bewirkt?
     

  3. #3
    WACSF WACSF ist offline Mitglied Gold
    Registriert seit
    Aug 2004
    Beiträge
    120
    Hi,
    ich habe mir jetzt mal das mit write durchgelesen. Nun habe ich kein document.write() mehr drin und die variablen alle in den global Bereich geschrieben. Wenn ich nun eine neue Funktion teste() erstelle, die plan.length in divtag.innerText ausgeben soll wird mit als Größe 0 angezeigt. Deswegen habe ich das Gefühl, dass die Daten mit plan.push(daten) nicht wirklich in dem array gespeichert werden?

    Schöne Grüße,

    WACSF
     

  4. #4
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Hast du überprüft, ob überhaupt Daten ankommen, die eingetragen werden könnten?
     

  5. #5
    WACSF WACSF ist offline Mitglied Gold
    Registriert seit
    Aug 2004
    Beiträge
    120
    ja habe ich. ich habe sie mir aus dem array plan vor ende der for schleife ausgeben lassen. da stehen sie definitiv drin. sobald ich die ausgabe um eine for schleife nach außen setze, werden die daten nichtmehr angezeigt.
    ich habe jetzt nochmal mein komplettes script mit den Kommentaren zur Ausgabe

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    
    var arr = new Array();
    var xmlhttp = false;
    var plan = new Array();
    var code = "NA";
    var date = new Array();
    var date2 = new Array();
    var preg = /\b([0-9]{2}.[0-9]{2}.[0-9]{2})\b/g;
    var preg2 = /<.*?>/gi;
    var tempcode = new Array();
     
            function connect(){
                if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
                    try {
                        xmlhttp = new XMLHttpRequest();
                    } catch (e) {
                        xmlhttp=false;
                    }
                }
                if (!xmlhttp && window.createRequest) {
                    try {
                        xmlhttp = window.createRequest();
                    } catch (e) {
                        xmlhttp=false;
                    }
                }       
            }
            function query(){
                connect();
                xmlhttp.open("GET", "http://adresse.php",true);
                xmlhttp.onreadystatechange=function() {
                    if (xmlhttp.readyState==4) {
                        code = xmlhttp.responseText;    
                        date = code.match(preg);
                        if (date){      
                            for (var i=0; i<date.length; i++)
                                arr.push(date[i]);                  
                        }
                        tempcode = code.split("Speiseplan n&auml;chste Woche");
                        
                        tempcode[1] = tempcode[1].split(/Montag, |Dienstag, |Mittwoch, |Donnerstag, |Freitag, |Gemischte/g);
                        for(var i = 1; i < tempcode[1].length; i++){
                            
                            tempcode[1][i] = tempcode[1][i].replace(preg2,'');
                            tempcode[1][i] = tempcode[1][i].replace(/^\s*/gi,'');
                            tempcode[1][i] = tempcode[1][i].replace(/ +/gi,' ');
                            tempcode[1][i] = tempcode[1][i].replace(/&nbsp;|&euro;|\f|\n|\r|\t|\v/gi,'');       
                            tempcode[1][i] = tempcode[1][i].split(/\d,\d\d\s*\S\s*\d,\d\d/g);
                            
                            //document.write(tempcode[1][1].length)
                            //for(var i = 0; i < tempcode[1][1].length; i++)
                            date2 = tempcode[1][i][0].match(preg);
                            
                            for(var a = 0; a < tempcode[1][1].length; a++){
                                tempcode[1][i][a] = tempcode[1][i][a].replace(preg,'');
                                tempcode[1][i][a] = tempcode[1][i][a].replace(/^\s*/gi,'');
                                //document.write(tempcode[1][i][a]+"<br>");
                                var check = plan.push(tempcode[1][i][a]);                       
                                
                                //if (check)
                                    //document.write("GEPUSHED");
                                //else
                                    //document.write("NICHT GEPUSHED");
                            } // Ende for
                        // WIRD NICHT ANGEZEIGT
                        //  for(var t = 0; t < plan.length; t++){
                        //      document.write("ARRAY: "+plan[t]+"<br>");
                        //  }                   
                        } // Ende for
                        
                        // WIRD NICHT ANGEZEIGT
                            for(var t = 0; t < plan.length; t++){
                                document.write("ARRAY: "+plan[t]+"<br>");
                            }
                            // DAS HIER KANN ICH NICHT AUSGEBEN, BZW. KOMMT DA NICHTS. WIESO?
                    
                    } // Ende if            
                teste();
                }   // Ende function        
                xmlhttp.send(null);
                
            }// Ende function
    function teste(){
        error.innerText = plan.length;  
    }
     
            function setContentText()
            {
                if(arr.length == 0) 
                    error.innerText = "Der Plan enthält leider keine Daten.";
                if(xmlhttp == false)
                    error.innerText = "Keine Internetverbindung vorhanden.";
                if(arr.length > 0 && xmlhttp){
                    woche.innerText = arr[0]+"-"+arr[1];
                    essen.innerText = arr[2]+"<br>"+arr[3]+"<br>"+arr[4]+"<br>"+arr[5]+"<br>"+arr[6];
                }
            }
     

  6. #6
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Ich glaube, es bringt mehr, wenn du mal einen Beispiel- Inhalt der abgefragten Datei postest und beschreibst, was du daraus erzeugen willst.

    Ohne dieses wird es schwer, das Bsp. nachzuvollziehen, zumal es so, wie es momentan ist, eh nur im IE7 komplett funktionieren kann, da nur dieser XMLHttpRequest() und innerText kennt.
     

Ähnliche Themen

  1. Szene wird nicht (vollständig) gespeichert
    Von Xo-mate im Forum Cinema 4D
    Antworten: 1
    Letzter Beitrag: 03.01.07, 14:42
  2. Antworten: 38
    Letzter Beitrag: 29.05.06, 23:47
  3. Antworten: 0
    Letzter Beitrag: 22.02.05, 12:10
  4. Session wird nicht gespeichert
    Von h-brock im Forum PHP
    Antworten: 1
    Letzter Beitrag: 09.02.04, 22:09
  5. Textur-Ordner wird nicht gespeichert!
    Von daDom im Forum Cinema 4D
    Antworten: 4
    Letzter Beitrag: 15.01.04, 13:51