Saturday, January 29, 2011

Numeric Keys with Form Select

I'm using the FormHelper (cake 1.3) to create a select box from an
array. The array uses numbers as keys but the select box ignores those
numbers and uses a zero-based index for the select box option values.
I've tried typing the array key to a string using both (string)$key
and strval($key) with no luck. The select options work when I prepend
a letter before the numeric key (i.e. 'c'.$key ) but I'd like to avoid
this hack.

Is there a way to force FormHelper to use the actual numeric keys
without prepending a letter? Any help would be appreciated.

See the following code for illustration:

// $category_list looks like this
Array
(
[164] => Antiques & Art
[83] => Baby/Children Needs
[176] => Boats/Marine/Fishing
[222] => Books & Magazines
[287] => Building Materials
[215] => Business
[175] => Caravans & Motor Homes
[169] => Cars & Other Vehicles
[127] => Clothing & Accessories
[92] => Computers & Electronics
[358] => Farm & Agriculture
[235] => Garage Sales/Yard Sales
[309] => Garden & Yard
[178] => General Merchandise
[138] => Health & Beauty
[186] => Hobbies & Collectables
[63] => Household
[234] => Information
[388] => Motorbikes & Scooters
[206] => Musical Instruments
[449] => Notices
[305] => Pets and Accessories
[242] => Positions Vacant
[236] => Real Estate & Rentals
[243] => Services
[143] => Sports Equipment
[308] => Tools & Equipment
[300] => Travel & Holiday
)

// Output category select box
echo $form->select(
'category',
$category_list,
$category,
array('id'=>'SearchCategories')
);

// Outputs like this
<option value="1">Antiques &amp; Art</option>
<option value="2">Baby/Children Needs</option>
<option value="3">Boats/Marine/Fishing</option>
<option value="4">Books &amp; Magazines</option>
...

// I'd like it to output like this
<option value="164">Antiques &amp; Art</option>
<option value="83">Baby/Children Needs</option>
<option value="176">Boats/Marine/Fishing</option>
<option value="222">Books &amp; Magazines</option>
...

--
Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions.


To unsubscribe from this group, send email to
cake-php+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php

No comments: