php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.07.2011, 15:07  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard Verschachteltes Objektliteral mit for in Schleifen durchlaufen?

Hallo Leute,

ich übergebe einer Funktion fogendes Objektliteral.

Code:
{
                                            "opt_1":{
                                                        "attrs":{
                                                                    "value":"Telefon",
                                                                    "class":"tel"
                                                                },
                                                        "opt_text":"Telefon"
                                                    },
                                            "opt_2":{
                                                        "attrs":{
                                                                    "value":"Mobil",
                                                                    "class":"mob"
                                                                },
                                                        "opt_text":"Mobil"
                                                    },
                                        }
Der Sinn dahinter ist, dass in eine Selectbox Optionsfelder eingefügt werden mit Attributen etc. Dazu muss ich dieses Objectliteral durchlaufen, aber hier weis ich nicht recht wie ich das mit den for in Schleifen machen muss. Ich weiß das für ein einfaches Objektliteral, jedoch nicht für verschachtelte. Ich habe auch nichts finden finden können als ich in Google "javascript verschachteltes Objektliteral durchlaufen" eingab.

Habt ihr da mal einen kurzen Tipp?

Danke Mfg der Litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.07.2011, 15:10  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von litterauspirna Beitrag anzeigen
Ich weiß das für ein einfaches Objektliteral, jedoch nicht für verschachtelte.
Du weißt also nicht, wie du etwas, von dem du weißt, wie man es ein mal macht, noch ein zweites mal macht ...?

Ob du das rekursiv machen willst, oder dir eine vorher festgelegte Anzahl von Ebenen statisch zu durchlaufen reicht, wäre auch interessant.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 18.07.2011, 15:19  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von ChrisB Beitrag anzeigen
Du weißt also nicht, wie du etwas, von dem du weißt, wie man es ein mal macht, noch ein zweites mal macht ...?

Ob du das rekursiv machen willst, oder dir eine vorher festgelegte Anzahl von Ebenen statisch zu durchlaufen reicht, wäre auch interessant.
Ja genau weil ich nicht weiß wie ich mit einer for in Schleife mehrere Ebenen ansprechen kann.
Es ist immer die gleiche Anzahl bzw. das Objektliteral sieht in dem Fall immer gleich aus.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 18.07.2011, 15:28  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von litterauspirna Beitrag anzeigen
Ja genau weil ich nicht weiß wie ich mit einer for in Schleife mehrere Ebenen ansprechen kann.
Wie machst du das denn in PHP, wenn du ein zweidimensionales Array durchlaufen willst ... nimmst du dann vielleicht zwei (foreach-)Schleifen, die ineinander verschachtelt sind?
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 18.07.2011, 15:38  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von ChrisB Beitrag anzeigen
Wie machst du das denn in PHP, wenn du ein zweidimensionales Array durchlaufen willst ... nimmst du dann vielleicht zwei (foreach-)Schleifen, die ineinander verschachtelt sind?
Ja in PHP ist das auch sehr einfach und für mich Gewohnheit.

Hier mal mein Codeversuch.

Code:
var createSelectBox = function ( pFieldType, pIdEmpfCon, pAttributes, pOptions ) {
    element = document.createElement( pFieldType );
    
    for ( var attr in pAttributes ) {
        element.setAttribute( attr, pAttributes[attr] );
    }
    
    for ( var opt in pOptions ) {
        option = document.createElement( "option" );
        
        for ( var optAttr in opt ) {
            option.setAttribute( optAttr, opt[optAttr] );
        }
        
        element.appendChild( option );
    }
    
    document.getElementById( pIdEmpfCon ).appendChild( element );
}
Und da bekopmme ich folgende Fehlermeldung bzw. Exception in der Fehlerkonsole.
Zitat:
Fehler: uncaught exception: [Exception... "String contains an invalid character" code: "5" nsresult: "0x80530005 (NS_ERROR_DOM_INVALID_CHARACTER_ERR)" location: "http://localhost/GregorWendt/Js/field_manager.js Line: 17"]
Zeile 17 ist diese.
Code:
option.setAttribute( optAttr, opt[optAttr] );
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 18.07.2011, 15:45  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von litterauspirna Beitrag anzeigen
Code:
    for ( var opt in pOptions ) {
        option = document.createElement( "option" );
        
        for ( var optAttr in opt ) {
Was ist optAttr an dieser Stelle, und was opt?

Wenn's dir nicht klar ist, schafft eine Debugausgabe Klarheit ...!
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 18.07.2011, 18:25  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Irgendwie peil ich das nicht richtig mit diesen Object Literalen.

Mein Code.
Code:
var createSelectBox = function ( pFieldType, pIdEmpfCon, pAttributes, pOptions ) {
    element = document.createElement( pFieldType );
    
    for ( var attr in pAttributes ) {
        element.setAttribute( attr, pAttributes[attr] );
    }
    
    for ( var opt in pOptions ) {
        option = document.createElement( "option" );
//        alert( pOptions[opt] );
        
        for ( var optAttrs in pOptions[opt] ) {
            optText = document.createTextNode( pOptions[opt][optAttrs] );
            option.appendChild( optText );
            
            for ( var attr in pOptions[opt][optAttrs] ) {
                option.setAttribute( attr, pOptions[opt][optAttrs][attr] );
//                alert( pOptions[opt][optAttrs][attr] );
            }
        }
        
        element.appendChild( option );
    }
    
    document.getElementById( pIdEmpfCon ).appendChild( element );
}
Und immer noch eione Exception.
Code:
Fehler: uncaught exception: [Exception... "String contains an invalid character"  code: "5" nsresult: "0x80530005 (NS_ERROR_DOM_INVALID_CHARACTER_ERR)"  location: "http://localhost/GregorWendt/Js/field_manager.js Line: 22"]
Ich komme nicht dahinter was ich aber falsch mache und mit den Debugg Versuchen, bzw. den Ergebnissen da drin komme ich auch nicht wirklich klar, die verwirren mich komplett.

DAnke für weitere Hilfe.

Mfg der Litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 18.07.2011, 18:32  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Code:
var o="";
for ( var opt in pOptions ) {
  o += "Level 1: "+opt+"\t"+pOptions+"\n";
  
  for ( var optAttrs in pOptions[opt] ) {
    o += "\tLevel 2: "+optAttrs+"\t"+pOptions[opt][optAttrs]+"\n";
    for ( var attr in pOptions[opt][optAttrs] ) {
      o += "\t\tLevel 3: "+attr+"\t"+pOptions[opt][optAttrs][attr]+"\n";
    }
  }
}
alert(o);
Das sollte dir klar machen, was du da durchläufst und wie.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 18.07.2011, 18:41  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Wenn die Struktur immer gleich ist, dann brauchst du dich natürlich nicht mit verschachtelten Schleife rumschlagen - dann reicht es auch aus, eine Schleife zu machen und in der über die bekannten Bezeichner auf die darunter liegenden Objekte/Werte zuzugreifen.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 18.07.2011, 18:54  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Code:
for (key in object) {
  ..
}
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Schleifen, Schleifen, Schleifen... frank-ae PHP Tipps 2010 1 30.01.2010 19:35
nicht-numerisches-array durchlaufen und dabei auf nächstes.. Crypi PHP Tipps 2006 7 16.08.2006 08:38
2 Forschleifen durchlaufen PHP Tipps 2005 8 19.01.2005 11:20
2 Schleifen durchlaufen PHP Tipps 2004 1 14.09.2004 14:33
Templatesystem: Wie realisiere ich Schleifen? TheSkaterFriend PHP Tipps 2004 2 14.08.2004 15:19

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
javascript objekt durchlaufen, php objekt durchlaufen, php objekte durchlaufen, php object durchlaufen, javascript object attribute rekursiv durchlaufen, object durchlaufen php, javascript object durchlaufen, javascript literal object verschachtelung, php \for in\, js object durchlaufen und werte anzeigen, js object ausgeben, js objekt for schleife iterieren, appendchild mehrere objekte, javascript elemente durchlaufen, javascript object attribute durchlaufen, javascript objektliteral mit new, javascript objekte durchgehen, wie werden verschachtelte schleifen durchlaufen, objekt durchlaufen php, javascript literal verschachtelung

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:20 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum