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 -~----------~----~----~----~------~----~------~--~---
