Empfehlungen: Erweiterte Suche

Multi-Action Formular

Ausgabedaten formatieren und darstellen

Multi-Action Formular

Beitragvon oxymoron » Di 11. Aug 2009, 09:16

Hallo zusammen,

ich möchte gern in einem index-View vor jedem Eintrag eine Checkbox haben, welche ich dann aktiviren kann um meherere Einträge zu löschen. Das wäre soweit auch sicher kein Problem, jedoch habe ich schon ein Formular mit einer Filterfunktion in der Übersicht. Wie lassen sich also multiple Actions für ein Formular realisieren?!

Hoffe ihr könnt mir helfen?!

Gruß
Sebastian
oxymoron
 
Beiträge: 6
Registriert: Fr 19. Jun 2009, 14:43
Wohnort: Dieburg
CakePHP-Version: 1.2
OS: WIN/LINUX/OSX

Re: Multi-Action Formular

Beitragvon Dogo » Di 11. Aug 2009, 10:12

Jetzt musste aber mal ein bisschen Code sehen lassen... Wie sieht denn bisher Dein Formular aus?
Kannst Du kein zweites Formular machen oder kommen sich die zwei dan in die Quere bzw. überschneiden sich
Benutzeravatar
Dogo
 
Beiträge: 63
Registriert: Do 6. Aug 2009, 00:59
Wohnort: Wuppertal

Re: Multi-Action Formular

Beitragvon oxymoron » Di 11. Aug 2009, 16:22

Code: Alles auswählen
<table cellpadding="0" cellspacing="0">
        <?php echo $form->create('Card', array('action'=>'index', 'id'=>'filters')); ?>
        <thead>
            <tr>
                <th></th>
                <th><?php echo __('Vorschau'); ?></th>
                <th><?php echo $paginator->sort('Kürzel','short',$filterOptions);?></th>
                <th><?php echo $paginator->sort('Name','name',$filterOptions);?></th>
                <th><?php echo $paginator->sort('Medium','type_id');?></th>
                <th><?php echo $paginator->sort('Provider','provider_id'); ?></th>
                <th><?php echo $paginator->sort('Kommentar','comment');?></th>

                <th class="actions"><?php __('Aktionen');?></th>
            </tr>
            <tr>
                <th><?php /* Hier kommt die Checkbox hin... */ ?></th>
                <th></th>
                <th><?php echo $form->input('short', array('style'=>'width:90%', 'label'=>'')); ?></th>
                <th><?php echo $form->input('name', array('style'=>'width:90%', 'label'=>'')); ?></th>
                <th></th>
                <th></th>
                <th></th>
                <th>
                    <button type="submit" name="data[filter]" value="filter">Filter</button>
                    <button type="submit" name="data[reset]" value="reset">Reset</button>
                </th>
            </tr>
        </thead>

        <tbody>
            <?php
            $i = 0;
            foreach ($cards as $card):
                $class = null;
                if ($i++ % 2 == 0) {
                    $class = ' class="altrow"';
                }
                ?>
            <tr<?php echo $class;?>>
                <td>
                       
                </td>
                <td>
                        <?php echo $html->image('cards/thumb.small.'.$card['Card']['filename'], array('style' => 'height:50px')); ?>
                </td>
                <td>
                        <?php echo $card['Card']['short']; ?>
                </td>
                <td>
                        <?php echo $card['Card']['name']; ?>
                </td>
                <td>
                        <?php echo $card['Type']['name']; ?>
                </td>
                <td>
                        <?php echo $card['Provider']['name']; ?>
                </td>
                <td>
                        <?php echo $card['Card']['comment']; ?>
                </td>
                <td class="actions">
                        <?php echo $html->link($html->image('/img/icons/information.png', array('alt'=>'Anzeigen','title'=>'Anzeigen')),array('action'=>'view', $card['Card']['id']), array('escape'=>false)); ?>
                        <?php echo $html->link($html->image('/img/icons/pencil.png', array('alt'=>'Bearbeiten','title'=>'Bearbeiten')), array('action'=>'edit', $card['Card']['id']), array('escape'=>false)); ?>
                        <?php echo $html->link($html->image('/img/icons/cross.png', array('alt'=>'Löschen','title'=>'Löschen')), array('action'=>'delete', $card['Card']['id']), null, sprintf(__('Den Eintrag # %s wirklich löschen?', true), $card['Card']['name']), array('escape'=>false)); ?>
                </td>
            </tr>
            <?php endforeach; ?>
        </tbody>
       
    </table>
        <?php /* In diesen Bereich kommt dann $form->submit() mit dem der multiple DELETE ausgeführt werden soll */
                 /* Dieser Button ruft dann eine Mehotde multi_delete auf.... */ ?>
<?php echo $form->end(); ?>
</div>
 


So sieht mein Formular im Moment aus. und in dieses Formular würde ich eben gern vor jeden Eintrag eine Checkbox haben mit denen ich dann mehrere Einträge löschen kann. Wie also kann ich es realisieren, dass ich mit einem Formular unterschiedliche Aktionen ausführen / bzw. unterschiedliche Methoden des Controllers aufrufen kann?!?

Gruß
Sebastian
oxymoron
 
Beiträge: 6
Registriert: Fr 19. Jun 2009, 14:43
Wohnort: Dieburg
CakePHP-Version: 1.2
OS: WIN/LINUX/OSX

Re: Multi-Action Formular

Beitragvon Dogo » Mi 12. Aug 2009, 02:13

Das sieht für mich nach zwei getrennten Formularen aus.
Erstens das, wo Du den aktuellen Eintrag bearbeiten kannst und zweitens das, wo Du die Einträge der Foreach-Schleife abarbeitest.
Das erste leitet zu "edit", das zweite zu "multiple_delete" oder so. Oder habe ich da jetzt was falsch verstanden? Wobei natürlich die Checkbox innerhalb der Foreach-Schleife sein muss.
Benutzeravatar
Dogo
 
Beiträge: 63
Registriert: Do 6. Aug 2009, 00:59
Wohnort: Wuppertal

Re: Multi-Action Formular

Beitragvon oxymoron » Mi 12. Aug 2009, 07:10

Hey Dogo,

das soll schon alles in ein Formualar. Einmal habe ich in diesem Formular eine Filterfunktion (um bestimmte Einträge anzeigen zu lassen => dafür gibt es eine Filterkomponente die in der index() abgearbeitet wird ), zusätzlich müssen innerhalb dieses Formulars natürlich die Checkboxen angelegt werden. Dann muss es auch innerhalb dieses Formulars einen Submit-Button geben mit dem ich die angewählten Einträge löschen kann. Da multiple_delete() jedoch eine eigenständige Methode ist muss ich sicher irgendwie $form->create() ändern, damit diese Funktion die unterschiedlichen Methodenaufrufe verarbeiten kann. ich habe jedoch keine genaue Ahnung wie ich das am besten anstellen kann.

Vielen Dank schonmal,
Sebastian
oxymoron
 
Beiträge: 6
Registriert: Fr 19. Jun 2009, 14:43
Wohnort: Dieburg
CakePHP-Version: 1.2
OS: WIN/LINUX/OSX

Re: Multi-Action Formular

Beitragvon euromark » Mi 12. Aug 2009, 09:34

du kannst es einfach als switch-case block in deiner aktuellen methode machen
beim posten wird überprüft, was für eine einstellung gewählt wurde und dahingehend dann die aktion ausgeführt
euromark
 
Beiträge: 644
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows


Zurück zu Views

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast