That worked! Thanks!
On Jan 20, 8:54 am, grigri <j...@hendersonwebdesign.com> wrote:
> // controller
> $aliquots = $this->Aliquot->find('all', array(
> 'conditions' => whatever,
> 'fields' => array(
> 'Aliquot.id',
> 'Aliquot.additive',
> 'Specimen.type',
> 'Specimen.draw_date'
> ),
> 'recursive' => 0
> ));
> $this->set('aliquots', Set::combine($aliquots,
> '{n}.Aliquot.id',
> array(
> '{0} [{1} / {2}]', // Format
> '{n}.Aliquot.additive', // Field #0
> '{n}.Specimen.type', // Field #1
> '{n}.Specimen.draw_date' // Field #2
> )
> ));
> // view
> echo $form->input('Aliquot', array('options' => 'aliquots', 'multiple'
> => 'checkbox'));
>
> Alternatively, if you want the checkboxes grouped - say by specimen
> type, then use this:
>
> $this->set('aliquots', Set::combine($aliquots,
> '{n}.Aliquot.id',
> array(
> '{0} [{1} / {2}]', // Format
> '{n}.Aliquot.additive', // Field #0
> '{n}.Specimen.type', // Field #1
> '{n}.Specimen.draw_date' // Field #2
> ),
> '{n}.Specimen.type'
> ));
> // view
> echo $form->input('Aliquot', array('options' => 'aliquots', 'multiple'
> => 'checkbox'));
>
> hth
> grigri
>
> On Jan 20, 2:32 pm, Tony Thomas <truet...@gmail.com> wrote:
>
> > On Jan 16, 12:22 am, brian <bally.z...@gmail.com> wrote:
>
> > > I think you could probably easily build the structure you want using
> > > Set in afterFind() (if not in the find itself). Can you post an
> > > example of the sort of array you would need if you were, say,
> > > displaying each option in an html table? Like if you did a straight
> > > find('all', $your_conditions).
>
> > Just to keep it simple, I've only got two fields in my 'find' until I
> > work out the logic. Once I have that worked out, I should be able to
> > open it up to however many fields I want.
>
> > $aliquots = $this->Aliquot->find(
> > 'all',
> > array('fields' => array(
> > 'Aliquot.id',
> > 'Specimen.type'),
> > 'conditions' =>
> > 'Aliquot.box_id IS NULL', 'limit' => '0, 100',
> > 'recursive' => 2
> > )
> > );
> > $this->set('aliquots', $aliquots);
>
> > Then in the view:
>
> > echo $form->input('Aliquot', array( 'label' => false,
> >
> > 'type' => 'select',
> >
> > 'multiple' => 'checkbox',
> >
> > 'options' => $aliquots));
>
> > The problem is that 'options' above doesn't seem to display a nested
> > array correctly. It's fine if I only define a single field in my find,
> > but since it uses the array for the labels as well as the value for
> > each checkbox, I can't define more information there to be displayed
> > only in the label. At least I haven't figured out how.
>
> > I could loop through and define each checkbox separately, but making a
> > multiple selection is difficult in that scenario unless I abandon the
> > form helpers altogether and just hand code the form.
>
> > > On Thu, Jan 15, 2009 at 5:02 PM, Tony Thomas <truet...@gmail.com> wrote:
>
> > > > I follow you up to this bit:
>
> > > >> <?php
>
> > > >> echo $form->input(
> > > >> 'Category',
> > > >> array(
> > > >> 'type'=>'select',
> > > >> 'multiple'=>'checkbox',
> > > >> 'options'=>$ids,
> > > >> 'label'=>false
> > > >> )
> > > >> );
> > > >> ?>
>
> > > > This doesn't seem to solve the problem of getting the other
> > > > information into my label. In fact, it's the exact method I'm using
> > > > now. I understand using $this->find('all', $options) and extract() to
> > > > separate the ids from the rest of the information, but how do I get
> > > > the other information displayed in my form? This method still leaves
> > > > me with checkboxes and ids, but no other info.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---