Empfehlungen: Erweiterte Suche

Formular mit mehreren Objekten

Ausgabedaten formatieren und darstellen

Formular mit mehreren Objekten

Beitragvon Dogo » So 20. Sep 2009, 06:21

Hallo,

ich baue gerade eine Bilderdatenbank und möchte auf einer Seite mehrere Thumbnails anzeigen und diese dann gemeinsam speichern können.
Also genau gesagt möchte ich oben im Fenster ein Formular haben, wo ich Kategorie, Tags etc eingeben kann und unten dann die Bilder per Checkbox markieren, die mit diesen Werten gespeichert werden sollen.

Es geht da um die neuen Bilder, die ich einsortieren möchte. Also "arrivals".

In pictures_controller:
Code: Alles auswählen
    function arrivals()
        {
        $this->set('filelist',$this->Picture->findAllByCategoryId(-1));
        }


Dann im View "arrivals" (vereinfacht):
Code: Alles auswählen
<!-- File: /app/views/elements/showmultiform.ctp -->
<table>
    <tr>
    <?php
    if (isset($filelist)) {
    $i = 0;
    $cols = 6;
    foreach ($filelist as $picture):
    if ($i % $cols == 0){
        echo '</tr><tr>';
    }
    ?>
        <td>
            <?php
            echo $form->create('Picture', array('controller' => 'pictures', 'action' => 'edit'));
            echo $html->link($html->image('thumbnails'.DS.$picture['Picture']['name'].'.jpg'), array('controller' => 'picture', 'action' => 'view'), array('escape' => false));
            echo $form->input('id', array('type'=>'hidden'));

            echo $form->input('Picture.name', array('label' => 'Name', ));
            echo $form->input('temp_tags', array('label' => 'Tags', ));
            echo $form->input('Picture.Keyword', array('label' => 'Tags', ));

            ?>
        </td>
    <?php
    $i++;
    endforeach;
    }?>
    </tr>
</table>


Daten wie "$picture['Picture']['name']" werde ausgegeben, jedoch werden die Formluarfelder (egal wie ich sie benenne) nicht vorausgefüllt. Hat da wer einen Tip?

Gruß,

Dogo
Benutzeravatar
Dogo
 
Beiträge: 63
Registriert: Do 6. Aug 2009, 00:59
Wohnort: Wuppertal

Re: Formular mit mehreren Objekten

Beitragvon Dogo » So 20. Sep 2009, 23:45

Ok. Das Vorausfüllen habe ich nun per Hand gemacht. Also wie folgt:

Code: Alles auswählen
                    echo $form->create('Picture', array('controller' => 'pictures', 'action' => 'editsingle', 'style' => 'width:120px;'));
                    echo $html->link($html->image('thumbnails'.DS.$picture['Picture']['name'].'.jpg'), array('controller' => 'Pictures', 'action' => 'view'.DS.$picture['Picture']['id']), array('escape' => false));
                    echo $form->input('id', array('type'=>'hidden', 'value' => $picture['Picture']['id']));
                    if (sizeof($picture['Keyword'])!=0){
                        foreach ($picture['Keyword'] as $tag) {
                            $tags[] = $tag['name'];
                        }
                    $tagline = implode(', ',$tags);
                    $tags = array();
                    }
                    echo $form->input('temp_tags', array('label' => 'Keywords', 'value' => $tagline));
                    echo $form->end(array('label' => 'Speichern','div' => false));


Jetzt bin ich also so weit, dass ich ein "allumfassendes" Formular schreiben will. Also, das ich einmal einen Tag / ein Keyword eingebe, bei den Bildern Haken setze und das dann absende und alle markierten speichere
Gehen Formulare in Formularen?
Benutzeravatar
Dogo
 
Beiträge: 63
Registriert: Do 6. Aug 2009, 00:59
Wohnort: Wuppertal

Re: Formular mit mehreren Objekten

Beitragvon Alex » Mo 21. Sep 2009, 22:25

Dogo hat geschrieben:...
Gehen Formulare in Formularen?

Nein. Das geht nicht.

Du solltest deine Formularstruktur nochmal überdenken. Ich habe vergleichbares so gelöst, dass ich den Feldern ein _1 angehängt habe. Also _1 für das Erste, _2 für das Zweite usw.

Im Controller musst du dass dann auseinanderpflücken und die einzelnen Objekt abspeichern.

Keine Komplettlösung, aber ein Denkanstoß. ;)
Alex
 
Beiträge: 120
Registriert: Di 13. Mai 2008, 13:39
Wohnort: Bremen
CakePHP-Version: 1.x.x
OS: OSX / Win 7 / Debian

Re: Formular mit mehreren Objekten

Beitragvon Dogo » Di 22. Sep 2009, 03:20

Alex hat geschrieben:
Dogo hat geschrieben:...
Gehen Formulare in Formularen?

Nein. Das geht nicht.


Na dann frage ich mich aber, warum ich es hinbekommen habe ;)

War ein bisschen tricky, geht aber. Beim "Submit" schickt Cake zwar alle Formulardaten aus Formularen innerhalb des großen Formulars mit, die kann ich aber ja links liegen lassen.

Gruß,

Dogo
Benutzeravatar
Dogo
 
Beiträge: 63
Registriert: Do 6. Aug 2009, 00:59
Wohnort: Wuppertal

Re: Formular mit mehreren Objekten

Beitragvon Alex » Mi 23. Sep 2009, 11:07

Es mag vielleicht gehen, xhtml-konform ist es aber sicher. :D
Alex
 
Beiträge: 120
Registriert: Di 13. Mai 2008, 13:39
Wohnort: Bremen
CakePHP-Version: 1.x.x
OS: OSX / Win 7 / Debian

Re: Formular mit mehreren Objekten

Beitragvon Dogo » Do 24. Sep 2009, 12:39

Zum Glück ist dem Kunden "funktioniert, ist aber nicht xhtml-konform" lieber als "ist xhtml-konform, funktioniert aber nicht".

Ausserdem sind die von Cake erstellten <br> oder <img> Tags auch nicht konform. Daher mache ich mir darum keine Sorgen. Der entsprechende Teil läuft auch nicht im öffentlichen Netz, sondern "nur" lokal.
Ich werde es aber im Code kommentieren, so dass da mit ein möglicher Weiterentwickler kein Problem bekommt.
Benutzeravatar
Dogo
 
Beiträge: 63
Registriert: Do 6. Aug 2009, 00:59
Wohnort: Wuppertal

Re: Formular mit mehreren Objekten

Beitragvon Alex » Do 24. Sep 2009, 22:14

Dogo hat geschrieben:Zum Glück ist dem Kunden "funktioniert, ist aber nicht xhtml-konform" lieber als "ist xhtml-konform, funktioniert aber nicht".

Da ist dann wohl der eigene Anspruch gefragt ;) Form follows function, dürfte dann wohl deine Methode sein. Ich mag's gerne, wenn es valide ist.

Das die img-Tags nicht xhtml-konform sind, ist mir nicht bekannt. Wie auch immer, ich schweife vom Thema ab. ;)
Alex
 
Beiträge: 120
Registriert: Di 13. Mai 2008, 13:39
Wohnort: Bremen
CakePHP-Version: 1.x.x
OS: OSX / Win 7 / Debian

Re: Formular mit mehreren Objekten

Beitragvon Dogo » Fr 25. Sep 2009, 12:14

Stimmt. Aber zur Klärung noch hinterher:
<img src... > - falsch.
<img src.... /> -richtig.

Selbes für <br> und andere alleinstehende Tags.
Benutzeravatar
Dogo
 
Beiträge: 63
Registriert: Do 6. Aug 2009, 00:59
Wohnort: Wuppertal

Re: Formular mit mehreren Objekten

Beitragvon Mathias » Fr 25. Sep 2009, 21:18

Cake erstellt doch xhtml-konforme Tags.
cheers
Benutzeravatar
Mathias
 
Beiträge: 225
Registriert: Mi 4. Jun 2008, 22:30
Wohnort: Berlin
CakePHP-Version: 1.3.x
OS: OS X 10.6.x

Re: Formular mit mehreren Objekten

Beitragvon Dogo » Sa 26. Sep 2009, 15:44

Dann mache ich was falsch. Ich suche mal danach.
Benutzeravatar
Dogo
 
Beiträge: 63
Registriert: Do 6. Aug 2009, 00:59
Wohnort: Wuppertal


Zurück zu Views

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste