Ankündigung

Einklappen
Keine Ankündigung bisher.

Rekursives durchlaufen meiner Objekte

Einklappen

Neue Werbung 2019

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

  • Rekursives durchlaufen meiner Objekte

    Hallo alle zusammen,

    Ich bin derzeit dabei mir ein richtig schönes und dynamisches Formular zu
    erstellen. Das ganze basiert auf KLASSEN, die ich seit einigen Tagen
    liebgewonnen habe..

    Okay mein Problem ist nun folgendes.
    Ich habe 1 Klasse, die mein Formular selbst beinhaltet.
    Diese ist sozusagen meine MUTTER-Klasse, von der alles ausgeht.
    Über dieses Object spreche ich im weiteren Verlauf jedes meiner Elemente
    an, die ich erstellen oder verändern möchte. ( Textfelder, Areas oder Radiobuttons usw... )

    Das erstellen selbst funktioniert schon sehr geil und auch sehr einfach.
    Nun muss / will ich in meiner Formularklasse eine Methode "show();" anlegen, die mir einfach ALLE Elemente aus meinem Formular, die ich angelegt habe, wieder ausgibt. In jedem meiner Objekte.. ob Textfeld oder Button usw.... gibt es eine Methode show();, die mir das jeweilige Element ausgibt. Sprich rufe ich diese Methode direkt auf, so bekomme ich auch mein Element auf meiner Seite gezeigt. Nur brauche ich das eben über die Hauptklasse.
    ( $formular ist mein Hauptobject, welches alles weitere beinhaltet )

    Ich will am Ende nur noch...
    PHP-Code:
    $formular->show(); 
    ... angeben und somit mein komplettes Formular ausgeben lassen können.

    Ich müsste meine ganze Hirarchie irgendwie so durchlaufen, dass ich in jedem Objekt die show() Methode aufrufen kann und somit am Ende das Formular wieder so ausgegeben wird, wie ich es auch angelegt habe.

    Hier nochmal zur Übersicht meine zum Test angelegten Elemente.

    PHP-Code:
    formelemente Object
    (
        [
    formelement] => Array
            (
                [
    textfeld1] => textfeld Object
                    
    (
                        [
    type] => text
                        
    [name] => textfeld1
                        
    [value] => 
                        [
    size] => 
                        [
    maxlength] => 
                        [
    readonly] => false
                        
    [disabled] => false
                        
    [label] => Vorname
                        
    [pflicht] => 
                        [
    style] => 
                        [
    plichtfeld] => 
                    )

                [
    radiogroup1] => radiogroup Object
                    
    (
                        [
    name] => radiogroup1
                        
    [radiobutton] => Array
                            (
                                [
    0] => radiobutton Object
                                    
    (
                                        [
    name] => radiogroup1
                                        
    [type] => radio
                                        
    [value] => 
                                        [
    beschreibung] => Ja
                                        
    [label] => 
                                        [
    style] => 
                                        [
    checked] => 
                                        [
    disabled] => false
                                    
    )

                                [
    1] => radiobutton Object
                                    
    (
                                        [
    name] => radiogroup1
                                        
    [type] => radio
                                        
    [value] => 
                                        [
    beschreibung] => Nein
                                        
    [label] => 
                                        [
    style] => 
                                        [
    checked] => checked
                                        
    [disabled] => false
                                    
    )

                                [
    2] => radiobutton Object
                                    
    (
                                        [
    name] => radiogroup1
                                        
    [type] => radio
                                        
    [value] => 
                                        [
    beschreibung] => Test
                                        
    [label] => 
                                        [
    style] => 
                                        [
    checked] => 
                                        [
    disabled] => false
                                    
    )

                            )

                    )

                [
    radiogroup2] => radiogroup Object
                    
    (
                        [
    name] => radiogroup2
                        
    [radiobutton] => Array
                            (
                                [
    0] => radiobutton Object
                                    
    (
                                        [
    name] => radiogroup2
                                        
    [type] => radio
                                        
    [value] => 
                                        [
    beschreibung] => Ja
                                        
    [label] => 
                                        [
    style] => 
                                        [
    checked] => 
                                        [
    disabled] => false
                                    
    )

                                [
    1] => radiobutton Object
                                    
    (
                                        [
    name] => radiogroup2
                                        
    [type] => radio
                                        
    [value] => 
                                        [
    beschreibung] => Nein
                                        
    [label] => 
                                        [
    style] => 
                                        [
    checked] => 
                                        [
    disabled] => false
                                    
    )

                            )

                    )

            )


    Angelegt sind 1 Textfeld und 2 RadiobuttonGruppen in denen wieder 2-3 Radiobuttons angelegt sind. Soweit geht das schon super.

    Mario

  • #2
    Na, wo genau hakt es denn jetzt?
    Du wirst ja einen Ansatz haben, oder?

    Kommentar


    • #3
      Einen Ansatz habe ich.
      In meinem FormularObjekt habe ich ein Array, worin wiederum meine weiteren Objekte und Arrays(für die Gruppen) liegen. Dieses kann ich schon durchlaufen und mir jeden Index ausgeben lassen. Über den Index habe ich dann ja auch den Namen des jeweiligen Objektes. Da ich aber auch Arrays drin habe, die wiederum Objekte drinnen liegen haben, stockt das ganze jetzt gerade in meinem Kopf.

      Entweder ich denke wiedermal zu komplex oder ich hab das Problem mit meinen ja ziemlich verschachtelten Objekten oder Arrays. Es ist kein Problem, wenn ich "nur" im FormularArray direkt ein Element anspreche und von diesem die show(); ausführe.
      Weiß jetzt nicht so recht, wie ich das mache, damit der auch die Arrays mit durchgeht und dann automatisch bei einem Objekt wieder die show() ausführt.

      Hoffe ich drücke mich gut aus...

      Mario

      Kommentar

      Lädt...
      X