Thanks, Jeremy, I got it working just the way that I wanted with your help.
On Tue, Nov 8, 2011 at 1:11 PM, Jeremy Burns | Class Outfit < [email protected]> wrote: > What we are trying to show you is that you don't need to go to the > overhead of using loads of forms; simple links will work. They also have > the advantage that you can distribute the link. > > echo $this->Html->link( > 'A', > array( > 'controller' => 'widgets', > 'action' => 'filter', > 'a' > ) > ); > > echo $this->Html->link( > 'B', > array( > 'controller' => 'widgets', > 'action' => 'filter', > 'b' > ), > array( > 'class' => 'selected' // because the user clicked 'B' > ) > ); > > Jeremy Burns > Class Outfit > > http://www.classoutfit.com > > echo $this->Html->link( > 'C', > array( > 'controller' => 'widgets', > 'action' => 'filter', > 'c' > ) > ); > > Could render these with a for/next loop of course. > > In your filter action, $letter = 'b'. $widgets is set to the returned find > (where Widgets.name starts with 'b'). > > One change I should make is to convert the first letter of the name to > lower case, so something like this: > > function filter($letter) { > $widgets = $this->Widget->find( > 'all', > array( > 'conditions' => array( > strtolower(substr('Widget.name', 0, 1)) => $letter > > ) > ) > ); > > $this->set(compact('letter', 'widgets')); > > } > > > Jeremy Burns > Class Outfit > > Tel: +44 (0) 208 123 3822 > Mob: +44 (0) 7973 481949 > Skype: jeremy_burns > http://www.classoutfit.com > > On 8 Nov 2011, at 17:48, Yves S. Garret wrote: > > I'm not following. $letters has just the names of the buttons and their > identification (can't really word this any better, basically the idea is > that once I click on a link/button, the identity of that button gets passed > to the controller and it does something specific for it). > > It would seem $widgets and $letter are the same... then why not just use > $letter? > > On Tue, Nov 8, 2011 at 11:31 AM, Jeremy Burns | Class Outfit < > [email protected]> wrote: > >> Have a controller action, something like: >> >> function filter($letter) { >> $widgets = $this->Widget->find( >> 'all', >> array( >> 'conditions' => array( >> substr('Widget.name', 0, 1) => $letter >> ) >> ) >> ); >> >> $this->set(compact('letter', 'widgets')); >> >> } >> >> Then $widgets is a variable in your view that contains only those whose >> name starts with $letter. You can use the $letter variable to highlight the >> href for that letter. >> >> There are better ways of doing this (you could store the first letter of >> 'Widget.name' in a table field and search on that and you could use a model >> function too. But this concept would work. >> >> Jeremy Burns >> Class Outfit >> >> http://www.classoutfit.com >> >> On 8 Nov 2011, at 16:12, Yves S. Garret wrote: >> >> What do you mean? <a href? >> >> On Tue, Nov 8, 2011 at 11:09 AM, Benni Graf <[email protected]> wrote: >> >>> Hi there, >>> >>> Before someone tells you how to do what you want, let me ask you: Why >>> don't you use a simple link instead of a form-button? That would make >>> less markup and more sense to me. And with a certain amount of css you >>> could easily make the link look like a button just to please your >>> executives ;-)... >>> >>> Regards, Benni. >>> >>> >>> >>> On 8 Nov., 16:54, "Yves S. Garret" <[email protected]> wrote: >>> > Before I even go on, here is what I have: >>> > >>> > View:http://bin.cakephp.org/view/404159005 >>> > Controller:http://bin.cakephp.org/view/21698870 >>> > >>> > The idea that I'm trying to do is have a row of buttons spanning the >>> > alphabet. The user clicks on the button and then it lists all of the >>> > people with their last name starting with the specific letter. This >>> is a >>> > requirement, yes, I know, you can just type in 'R' and hit Enter and >>> the >>> > same thing will be done, no, this did not please powers-that-be. >>> Moving >>> > on... >>> > >>> > I didn't want to create a function for _every_ button. That seemed >>> painful >>> > and just bad coding. I would like to call that method and then pass >>> in a >>> > value (in this case, a string of one length) and the method will >>> perform a >>> > specific function based on the input. I tried this line of code: >>> > echo $this->Form->button($letter, array('action' => >>> 'view_admit_lookup')); >>> > >>> > I did some digging online: >>> http://book.cakephp.org/view/1415/buttonhttp://api.cakephp.org/file/cake/libs/view/helpers/form.php#method-Fo. >>> .. >>> > >>> > I couldn't find anything that would do this for me easily. Am I >>> missing >>> > something? Did I look into the wrong docs? >>> >>> -- >>> Our newest site for the community: CakePHP Video Tutorials >>> http://tv.cakephp.org >>> Check out the new CakePHP Questions site http://ask.cakephp.org and >>> help others with their CakePHP related questions. >>> >>> >>> To unsubscribe from this group, send email to >>> [email protected] For more options, visit this >>> group at http://groups.google.com/group/cake-php >>> >> >> >> -- >> Our newest site for the community: CakePHP Video Tutorials >> http://tv.cakephp.org >> Check out the new CakePHP Questions site http://ask.cakephp.org and help >> others with their CakePHP related questions. >> >> >> To unsubscribe from this group, send email to >> [email protected] For more options, visit this group >> at http://groups.google.com/group/cake-php >> >> >> >> -- >> Our newest site for the community: CakePHP Video Tutorials >> http://tv.cakephp.org >> Check out the new CakePHP Questions site http://ask.cakephp.org and help >> others with their CakePHP related questions. >> >> >> To unsubscribe from this group, send email to >> [email protected] For more options, visit this group >> at http://groups.google.com/group/cake-php >> > > > -- > Our newest site for the community: CakePHP Video Tutorials > http://tv.cakephp.org > Check out the new CakePHP Questions site http://ask.cakephp.org and help > others with their CakePHP related questions. > > > To unsubscribe from this group, send email to > [email protected] For more options, visit this group > at http://groups.google.com/group/cake-php > > > -- > Our newest site for the community: CakePHP Video Tutorials > http://tv.cakephp.org > Check out the new CakePHP Questions site http://ask.cakephp.org and help > others with their CakePHP related questions. > > > To unsubscribe from this group, send email to > [email protected] For more options, visit this group > at http://groups.google.com/group/cake-php > -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/cake-php
