On Dec 30, 2008, at 8:11 PM, Michael Geary wrote:
Your checkboxes all have the same ID attribute, and they have no NAME
attribute. Give each one a unique ID and NAME. You can use same value for
those two attributes in a single checkbox, or they can be different. But
each ID and each NAME should be unique.
Hey Mike,
Is it necessary to give each one a unique name? I've read this a number of times, but I've also read the contrary, and PHP seems to like the array-like naming convention for checkboxes:
<input type="checkbox" id="apples" name="food[]" value="apples" />
<label for="apples">Apples</label>
<input type="checkbox" id="pizza" name="food[]" value="pizza" />
<label for="pizza">Pizza</label>
<input type="checkbox" id="cake" name="food[]" value="cake" />
<label for="cake">Cake</label>
<label for="apples">Apples</label>
<input type="checkbox" id="pizza" name="food[]" value="pizza" />
<label for="pizza">Pizza</label>
<input type="checkbox" id="cake" name="food[]" value="cake" />
<label for="cake">Cake</label>
So, if I check the Apples checkbox and the Pizza checkbox, the $_Post array will look like this:
Array
(
[food] => Array
(
[0] => apples
[1] => pizza
)
)
It's pretty handy, but if there is a compelling argument against doing that, I'm willing to be persuaded.
You may run into an alternate syntax for using the <label> tags, where you
don't use the for="..." but instead nest the <input> tag inside the <label>.
That is cleaner, but it doesn't work in IE so it's best avoided. Use the
for="..." instead.
There is nothing wrong with doing both -- nesting the <input> inside the <label> and using the "for" attribute. Or is there?
--Karl
____________
Karl Swedberg
No comments:
Post a Comment