Problem mit Array Ausgabe in Schleife

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

  • Problem mit Array Ausgabe in Schleife

    [COLOR=#333130][FONT=tahoma]ich habe hier ein echt dummes Problem, was ich nicht verstehe.. ich versuche ein array in einer Schleife Auszugeben und verwende dafür eine Zähl variable.. leider bekomme ich immer den Fehler "TypeError: img_pre_array[i] is undefined"[/FONT][/COLOR]

    [COLOR=#333130][FONT=tahoma]Wenn anstatt das i direkt eine Zahl eintrage, funktioniert es komischerweise!!!?!?[/FONT][/COLOR]

    [COLOR=#333130][FONT=tahoma]PHP Quellcode:
    [COLOR=#1818E3][FONT=monospace][COLOR=#007700]var[/COLOR] i [COLOR=green]=[/COLOR] [COLOR=#007700]0[/COLOR][COLOR=green];[/COLOR]
    [COLOR=#007700]while[/COLOR][COLOR=green]([/COLOR]i [COLOR=green]<=[/COLOR] img_pre_array[COLOR=green].[/COLOR]length[COLOR=green])[/COLOR]
    [COLOR=green]{[/COLOR]
    [COLOR=#007700]var[/COLOR] id [COLOR=green]=[/COLOR] img_pre_array[COLOR=green][[/COLOR]i[COLOR=green]][/COLOR][COLOR=green][[/COLOR][COLOR=#DD0000]"id"[/COLOR][COLOR=green]][/COLOR][COLOR=green];[/COLOR]
    [COLOR=#007700]var[/COLOR] img_width [COLOR=green]=[/COLOR] img_pre_array[COLOR=green][[/COLOR]i[COLOR=green]][/COLOR][COLOR=green][[/COLOR][COLOR=#DD0000]"img_width"[/COLOR][COLOR=green]][/COLOR][COLOR=green];[/COLOR]
    [COLOR=#007700]var[/COLOR] img_height [COLOR=green]=[/COLOR] img_pre_array[COLOR=green][[/COLOR]i[COLOR=green]][/COLOR][COLOR=green][[/COLOR][COLOR=#DD0000]"img_height"[/COLOR][COLOR=green]][/COLOR][COLOR=green];[/COLOR]
    [COLOR=#007700]var[/COLOR] img_url [COLOR=green]=[/COLOR] img_pre_array[COLOR=green][[/COLOR]i[COLOR=green]][/COLOR][COLOR=green][[/COLOR][COLOR=#DD0000]"img_url"[/COLOR][COLOR=green]][/COLOR][COLOR=green];[/COLOR]

    [COLOR=#007700]if[/COLOR][COLOR=green]([/COLOR]img_height [COLOR=green]>=[/COLOR] [COLOR=#007700]150[/COLOR] [COLOR=green]&&[/COLOR] img_width [COLOR=green]>=[/COLOR] [COLOR=#007700]150[/COLOR][COLOR=green])[/COLOR]
    [COLOR=green]{[/COLOR]
    [COLOR=#007700]var[/COLOR] row[COLOR=green]=[/COLOR][COLOR=green]{[/COLOR][COLOR=green]}[/COLOR][COLOR=green];[/COLOR]
    row[COLOR=green].[/COLOR]id [COLOR=green]=[/COLOR] id[COLOR=green];[/COLOR]
    row[COLOR=green].[/COLOR]img_width [COLOR=green]=[/COLOR] img_width[COLOR=green];[/COLOR]
    row[COLOR=green].[/COLOR]img_height [COLOR=green]=[/COLOR] img_height[COLOR=green];[/COLOR]
    row[COLOR=green].[/COLOR]img_url [COLOR=green]=[/COLOR] img_url[COLOR=green];[/COLOR]

    img_array[COLOR=green].[/COLOR]push[COLOR=green]([/COLOR]row[COLOR=green])[/COLOR][COLOR=green];[/COLOR]
    [COLOR=green]}[/COLOR]
    i[COLOR=green]++;[/COLOR]
    [COLOR=green]}[/COLOR][/FONT][/COLOR]
    [/FONT][/COLOR]


    [COLOR=#333130][FONT=tahoma]was mache ich denn falsch, das "i" nicht als Zahl erkannt wird??[/FONT][/COLOR]

  • #2
    ich bae das Problem gefunden .. es waren die '=' in der while abfrage..

    das war soweit das Problem.. leider hab ich jetzt noch ein weiteres...
    Also was ich überhaupt schreibe ist ein Script das die Bildgröße anhand einer per xml übergebenen Bild URL ermittelt und die URL dann in ein weiteres Array schreibt, wenn das Bild Höhe und Breite jeweis über 150px hat.

    Mein Problem ist, das das Script irgendwie mach was es will.. mal funktioniert es, mal nicht..
    Wenn ich mal ein alert() hinzufüge funktioniert es.. und wenn ich es weg lasse funktioniert es wieder nicht.. ich check es garnicht wo hier das Problem liegt..
    Mal wird das erste bild aus der XML richtig ausgelesen.. und beim nächsten mal werden die größenwerte dem falschem bild zugeordnet.

    Man beachte das es sich immer um die gleiche XML handelt und das problem total unlogisch ist....

    Hier zunächst die XML mit einigen Einträgen.. also die Einträge mit der ID 1 und 2 sind die, die größer als 150 px sind. Nur wird manchmal die größe der ID 1 zu ID 2 zugeordnet und dann beim nächsten mal ist es richtig.. und manchmal wird koplett die bedingung das die größe min 150xp sind muss ignoriert.. und ein anderes mal ist das array "img_array" leer... .ich bin hier schon am verzweifeln...

    PHP-Code:
    <?xml version='1.0' encoding='utf-8'?>
    <event_list>
    <event>
    <id>0</id>
    <img>http://skin.ztat.net/s/0lb/img/logos/shops/schuhe.jpg</img>
    </event>
    <event>
    <id>1</id>
    <img>http://i2.ztat.net/large/ZI/11/2A/04/03/02/ZI112A040-302@1.2.jpg</img>
    </event>
    <event>
    <id>2</id>
    <img>http://i2.ztat.net/detail/ZI/11/2A/04/03/02/ZI112A040-302@1.2.jpg</img>
    </event>
    <event>
    <id>3</id>
    <img>http://i2.ztat.net/selector/ZI/11/2A/04/03/02/ZI112A040-302@1.2.jpg</img>
    </event>
    <event>
    <id>4</id>
    <img>http://i1.ztat.net/selector/ZI/11/2A/04/03/02/ZI112A040-302@2.2.jpg</img>
    </event>
    <event>
    <id>5</id>
    <img>http://i2.ztat.net/selector/ZI/11/2A/04/03/02/ZI112A040-302@3.2.jpg</img>
    </event>
    <event>
    <id>6</id>
    <img>http://i1.ztat.net/selector/ZI/11/2A/04/03/02/ZI112A040-302@4.2.jpg</img>
    </event>
    <event>
    <id>7</id>
    <img>http://i2.ztat.net/selector/ZI/11/2A/04/03/02/ZI112A040-302@5.2.jpg</img>
    </event>
    <event>
    <id>8</id>
    <img>http://i1.ztat.net/selector/ZI/11/2A/04/03/02/ZI112A040-302@6.2.jpg</img>
    </event>
    <event>
    <id>9</id>
    <img>http://i2.ztat.net/selector/ZI/11/2A/04/03/02/ZI112A040-302@7.2.jpg</img>
    </event>
    <event>
    <id>10</id>
    <img>http://i1.ztat.net/brand/zign.jpg</img>
    </event>
    </event_list>
    Hier das JavaScript das die XML per Jquery Ajax aus einer PHP erhält.
    PHP-Code:
    var img_pre_array = new Array();
    var 
    img_array = new Array();

    $(
    "#btn_find_image").click(function(event){

        $.
    ajax({
           
    type"POST",
           
    urlhost+"/ajax/find_images.php",
              
    data"url="+$("#url_find_image").val(), 
              
    dataType"xml",
              
    beforeSend: function(){
               },                  
               
    success: function(xml) {
                   
                   
    img_pre_array = [];            
                   
                   var 
    newImage = new Image();
                           
                var 
    id 0;
                var 
    img_url null;
                var 
    img_height 0;
                var 
    img_width 0;
                    
                $(
    xml).find('event').each(function(){                
                    
                    
    id = $(this).find('id').text();
                    
    img_url = $(this).find('img').text();            
                    
                    
    newImage.src img_url;
                    
                    
    id parseInt(id);                
                    
    img_width parseInt(newImage.width);
                    
    img_height parseInt(newImage.height);        
                                
                    
    alert(id+" - "+img_width+" "+img_height);            
                                    
                    var 
    row={};
                    
    row.id id;
                      
    row.img_width img_width;
                    
    row.img_height img_height;
                    
    row.img_url img_url;
                                   
                    
    img_pre_array.push(row);
                                                   
                });    
                
                
    //alert(print_r(img_pre_array));            
                
                
    if(img_pre_array[0]["id"] == "null")
                {
                    $(
    "#msg_no_img").css("display""block");
                }
                else
                {
                    
                    
    //alert(img_pre_array.length);
                    
                    //alert(print_r(img_pre_array));
                    
                    
    img_array = [];
                    
                    var 
    0;
                    while(
    img_pre_array.length)
                    {                    
                        var 
    id img_pre_array[i]["id"];                   
                        var 
    img_width img_pre_array[i]["img_width"];
                        var 
    img_height img_pre_array[i]["img_height"];
                        var 
    img_url img_pre_array[i]["img_url"];                    
                            
                                            
                        if(
    img_height 150 && img_width 150)
                        {
                            
    //alert(img_url);
                            
                            
    var row={};
                            
    row.id id;                        
                            
    row.img_width img_width;
                            
    row.img_height img_height;
                            
    row.img_url img_url;
                            
                            
    //alert(row.img_url);                
                            
    img_array.push(row);                        
                        }
                        
                        
    i++;
                    }        
                    
                    if(
    img_array[0]["id"] == "null")
                    {
                        $(
    "#msg_no_img").css("display""block");
                    }
                    else
                    {
                        var 
    img_id 0;
                        var 
    img_url img_array[0]["img_url"];
                        var 
    img_id_text parseInt(img_id) + 1;        
                        
                        $(
    "#imageview_img").attr("src"img_url);
                        $(
    "#img_id_text").text("Bild: "+img_id_text+" von "+img_array.length);
                    
                    }            
                }                
            }                
         });
    }); 

    Kommentar


    • #3
      Problem mit Array Ausgabe in Schleife - PHP Forum: phpforum.de

      Kommentar

      Lädt...
      X