Ankündigung

Einklappen
Keine Ankündigung bisher.

mehrdimensionales Array als HTML-Formular

Einklappen

Neue Werbung 2019

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

  • mehrdimensionales Array als HTML-Formular

    Moin, moin,

    ich habe verschiedene mehrdimensionale Arrays, welche ich so als HTML-Formular darstellen will, dass man die Werte über text-felder bearbeiten und dann (mittels post des formulars) wieder als array in php bekommen kann.

    Beispiel:
    Array:
    PHP-Code:
    array(
       array(
          
    "MemberCount" => "5"
          
    "Definition" => array(
             
    "1" => "1.00" )
       ),
       array(
          
    "MemberCount" => "10"
          
    "Definition" => array( 
             
    "1" => "0.50"
             
    "2" => "0.30"
             
    "3" => "0.20")
       ),
       array(
          
    "MemberCount" => "1000000"
          
    "Definition" => array(
             
    "1" => "0.45"
             
    "2" => "0.25"
             
    "3" => "0.15"
             
    "4" => "0.10"
             
    "5" => "0.05")
          )
       )

    jetzt habe ich eine Funktion, die mir rekursiv das array durchgeht und für jedes "Blatt" des Astes ein text-feld erstellt.
    PHP-Code:
    function echo_array($array$return_me false$fieldName "") {
            
    $return "";
            if(
    is_array($array) == false){
                
    $return "The provided variable is not an array.";
            } else {
                foreach(
    $array as $name=>$value){
                    
    $fieldName .= "[$name]";
                    if(
    is_array($value)){
                        
    $return .= "";
                        
    $return .= "$name => <div style='margin-left:20px;'>";
                        
    $return .= $this->echo_array($valuetrue$fieldName);
                        
    $return .= "</div>";
                        
    $return .= "";
                    }else{
                        if(
    is_string($value)){
                            
    $value "$value";
                        }
                        
    $return .= "$name => <input type='text' name='constantValue$fieldName' value='$value' style='width:300px;' />
    "
    ;
                        
    $fieldName str_replace("[$name]"""$fieldName);
                    }
                }
            }
            
            if(
    $return_me == true){
                return 
    $return;
            } else {
                echo 
    "<pre>".$return."</pre>";
            }
        } 
    Das Problem ist nun folgendes:
    Im name-Attribut des input-feldes sollte das Array wieder abgebildet werden, damit das nach dem Post nicht neu zusammengebaut werden muss.
    z.B.:
    name='constantValue[0][MemberCount]'
    und
    name='constantValue[0][Definition][1]'

    für die weiteren Elemente sollte dann z.B. folgendes stehen:
    name='constantValue[1][MemberCount]'
    und
    name='constantValue[1][Definition][1]'
    bzw.
    name='constantValue[1][Definition][2]'

    das klappt aber in der o.g. Funktion nicht, da die Funktion nicht weiß wann und wie viele Elemente in $fieldName gelöscht werden müssen, um z.B. das erste Element [0] durch [1] zu ersetzen und anschließend alle weiteren elemente wieder hinzuzufügen.

    Ich hoffe, meine Beschreibung hat nicht noch mehr verwirrung gestiftet

    Ich wäre über eine Lösung oder einen Weg dorthin dankbar.

  • #2
    Ist es besonders fortgeschritten, Crosspostings zu machen
    Gruss
    L

    Kommentar


    • #3
      Danke, Lazy. Thread verschoben!
      Viele Grüße,
      Dr.E.

      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      1. Think about software design [B]before[/B] you start to write code!
      2. Discuss and review it together with [B]experts[/B]!
      3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
      4. Write [I][B]clean and reusable[/B][/I] software only!
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      Kommentar


      • #4
        mindhead,

        ich hab vor langer Zeit mal etwas geschrieben,
        dass mir dabei helfen sollte, Einstellungen f

        Kommentar

        Lädt...
        X