6
votes

with config div => false

$form->input('checkbox');

print

<input type="checkbox" value="1" ....>
<label>checkbox</label>

but i want it reverse order

<label>checkbox</label>
<input type="checkbox" value="1" ....>

can it reverse ?

3
This has been answered here: stackoverflow.com/questions/34055976/…elb98rm

3 Answers

11
votes

There's a neater way of doing this than the method ShiVik posted. That forced you to manually enter the title to checkbox inside of a tag. If you don't want that, there's a method to re-arrange the order of elements.

In your example, you simply want to change the order of the $format option, like so:

<?php echo $this->Form->input('checkbox', array(
                                  'type'=>'checkbox', 
                                  'format' => array('before', 'input', 'between', 'label', 'after', 'error' ) 
  ) ); ?>
  • Edit, just noticed your post was running cake 1.2. This code is for cake 1.3
2
votes

You can do this by setting the label to false and using the option "before" to display the label where you want.

<?php echo $form->input('checkbox', 
    array(
      'label'=>false, 
      'type'=>'checkbox',
      'before' => '<label>checkbox</lablel>', 
      'div' => false
 )); ?>

Useful links

If not this, then you can use the Form element specific methods, instead of the automagic form elements.

1
votes

It's often easier to do things manually if the generic FormHelper::input wrapper doesn't fit your bill:

echo $form->label('fieldname');
echo $form->checkbox('fieldname');

I often don't use FormHelper::input beyond scaffolding.