Yes you are right.Sorry for not being more accurate.The problem i am facing
is that when i select a choice check/uncheck the checkbox the controller
function dont do anything.In other words the new data in user status cant
replace the older.And i cant find if it is problem in form or in
controller.In my opinion i think it might be problem in the action
change_status coz the new data cant be saved.

2009/5/4 brian <[email protected]>

>
> It's usually best to state exactly what problems one is encountering.
> That being said, for a single checkbox, I usually use this format:
>
> <?php echo $form->hidden('User.id'); ?>
> <label>Active
> <?php echo $form->checkbox(’User.status’); ?>
> </label>
>
> The way you were doing it is more like what one would use for a select
> list. In your case, you only need a single checkbox with the value 1.
> If it's not present, the default 0 will be set (depending upon how you
> defined the column).
>
> If the value is set in $this->data (say, in an edit form) Cake will
> take care of settingthe checkbox to the "checked" state.
>
>
> On Sun, May 3, 2009 at 5:02 PM, paulos nikolo <[email protected]>
> wrote:
> > I still have problem.And i can't figure out what cause it!I used a
> checkbox
> > and still nothing.
> >
> > view/change_status
> >
> > <?php
> >     echo $form->create('User', array('action' => 'change_status'));
> >     echo $form->input('User.status', array ('type' =>
> 'checkbox','label'=>
> > 'Active','options'=>array(1=>'Active',0=>'Inactive')));
> >     echo $form->input('id', array('type'=>'hidden'));
> >     echo $form->end('Save');
> > ?>
> >
> > 2009/5/3 brian <[email protected]>
> >>
> >> That looks ok, I think. Did you try that?
> >>
> >> One thing I noticed is that your form won't have $id in the action, so
> >> $this->User->id = $id; won't always work the way you expect. I usually
> >> do something along these lines:
> >>
> >> function change_status($id=null)
> >> {
> >>        if (empty($this->data))
> >>        {
> >>                $this->data = $this->User->read(null, $id);
> >>        }
> >>        else
> >>        {
> >>                /* $id is in $data['User']
> >>                 */
> >>                if ($this->User->save($this->data))
> >>                {
> >>                        $this->Session->setflash('User status has been
> >> updated!');
> >>                        $this->redirect('/users');
> >>                }
> >>
> >> On Sun, May 3, 2009 at 1:01 PM, Paulos23 <[email protected]>
> wrote:
> >> >
> >> > Ok Brian so i ll use tinyint.But after that i make default 1 for
> >> > active and when i wanr to change it to inactive nothing happen.I am
> >> > using a checkbox coz i think it's the most appropriate for my
> >> > needs.Can you help me if i am wrong?Here is my code:
> >> >
> >> > view
> >> > <?php
> >> >        echo $form->create('User', array('action' => 'change_status'));
> >> >        echo $form->input('User.status', array ('type' =>
> >> > 'checkbox','label'=> 'Status','options'=>array(1=>'Active',
> >> > 0=>'Inactive')));
> >> >        echo $form->input('id', array('type'=>'hidden'));
> >> >        echo $form->end('Save');
> >> > ?>
> >> >
> >> > controller
> >> > function change_status($id=null){
> >> >        $this->User->id = $id;
> >> >                if (empty($this->data)) {
> >> >                        $this->data = $this->User->read();
> >> >                } else {
> >> >                        if ($this->User->save($this->data)) {
> >> >                        $this->Session->setflash('User status has been
> >> > updated!');
> >> >                        $this->redirect('/users');
> >> >                        }
> >> >                }
> >> >        }
> >> >
> >> > Ty in advance!
> >> >
> >> > On May 3, 7:24 pm, brian <[email protected]> wrote:
> >> >> Cake has no official support forENUM. (there may be ways to use them,
> >> >> of course)
> >> >>
> >> >> The simplest way to deal with this would be to change your column to
> >> >> (mysql version):
> >> >>
> >> >> active BOOLEAN DEFAULT FALSE (or TRUE, whichever you want)
> >> >> or
> >> >> active BIT(1) DEFAULT 0 (or 1)
> >> >> or
> >> >> active TINYINT(1) DEFAULT 0 (or 1)
> >> >>
> >> >> .. which, for mysql, amounts to the same thing.
> >> >>
> >> >> If you foresee having more than 2 types ofstatus, create a table,
> >> >> statuses, give users a status_id andUserhasOneStatus.
> >> >>
> >> >> On Sun, May 3, 2009 at 11:30 AM, Paulos23 <[email protected]>
> >> >> wrote:
> >> >>
> >> >> > Hi Cake people,
> >> >> > I have a problem in settinguserstatus.In particular i have a field
> >> >> > in users table which is calledstatusand i have set it toenum
> >> >> > ('active','inactive') default 'active'.now in users/views/
> >> >> > change_status i want to have a select tag to setstatusas active or
> >> >> > inactive.Here is the code:
> >> >>
> >> >> > <?php
> >> >> >        echo $form->create('User', array('action' =>
> >> >> > 'change_status'));
> >> >> >        echo $form->input('User.status', array ('type' =>
> >> >> > 'select','label'=>
> >> >> > 'Status','options'=>array(1=>'active',0=>'inactive')));
> >> >>
> >> >> >        echo $form->input('id', array('type'=>'hidden'));
> >> >> >        echo $form->end('Save');
> >> >> > ?>
> >> >>
> >> >> > Now in users_controller i want a change_status fanction to edit the
> >> >> > changes.But when i select a choice nothing happen.Can you please
> help
> >> >> > me ?
> >> >>
> >> >> > My code in controller:
> >> >>
> >> >> > function change_status($id=null){
> >> >> >        $this->User->id = $id;
> >> >> >                if (empty($this->data)) {
> >> >> >                        $this->data = $this->User->read();
> >> >> >                } else {
> >> >> >                        if ($this->User->save($this->data)) {
> >> >> >                        $this->Session->setflash('Userstatushas been
> >> >> > updated!');
> >> >> >                        $this->redirect('/users');
> >> >> >                        }
> >> >> >                }
> >> >> >        }
> >> >>
> >> >>
> >> > >
> >> >
> >>
> >>
> >
> >
> > >
> >
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to