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

Reply via email to