Why not use the form tempting system instead? The Form helper is very flexible in the way that it allows you to create your html
On Tuesday, December 2, 2014 9:01:06 AM UTC+1, José Lorenzo wrote:
-- On Tuesday, December 2, 2014 9:01:06 AM UTC+1, José Lorenzo wrote:
If you use label() and checkbox() separately, you re responsible for passing the correct attributes to those 2 functions. For example, for label() you will have to provide the 'for' attribute and for checkbox() the 'id' attribute.When using the input() function, the label and the checkbox will be generated for you with a matching id for both tags
On Tuesday, December 2, 2014 5:21:47 AM UTC+1, Joe Theuerkauf wrote:i'm a little confused about how labels & inputs are assigned for/id pairs in FormHelper.
Here's the code i have (it's inside a foreach of an entity collection):
$attrId = 'Listing.ItemAttr.' . $attr->id;
echo
$this->Html->div('columns small-16 medium-8',
$this->Form->label($attrId, // [for] attribute
$this->Form->checkbox(
$attrId, // [name] attribute
[
'id' => $attrId, // [id] attribute - if i skip this for checkbox inputs, i don't get an [id] attribute.
// 'label' => $attr->name >> turns into <input type="checkbox" label="Attribute Name">
// other checkbox attributes
]
) . $attr->name,
[
'escape' => FALSE
]
) // end label
);
The resulting HTML:
<div class="columns small-16 medium-8">
<label for="listing-itemattr-3">
<input type="checkbox" id="Listing.ItemAttr.3" name="Listing[ItemAttr][3]">Attribute Name
</label>
</div>
The label passes the [for] attribute through FormHelper::_domId, which i'd expect. But the [id] attribute doesn't appear to get the same treatment. i changed the checkbox() call to input() and the same ID string was assigned. It looks like an auto-generated ID is passed through _domId, but that only gets into the attributes if 'id' isn't already set in that array.
i also discovered that in the checkbox() method, a 'label' key is turned into an attribute of the input, not used to generate a wrapping <label> element as with most other inputs. Peculiar. So i'm doing this manual structure (which is fine, i also need to customize some other parts of the HTML anyway).
Question 1: In FormHelper::input(), shouldn't the ID attribute be adjusted with _domId after the $options array is complete? Or is there an issue in checkbox() that it's not outputting the generated ID to HTML?
Question 2: Any suggestions how to get the wrapping label's [for] to match the checkbox's [id] until one of the above is addressed?
Thanks.
-joe t.
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.
No comments:
Post a Comment