I have 4 groups of Service Areas in a HABTM relationship with Firm
Profiles.

My controller :

if ($step == 'step3') {
                        if (!empty($this->data)) {
                                $this->set('before',$this->data);

                                if 
($this->Firm->FirmProfile->saveAll($this->data)) {
                                        $this->Session->setFlash(__('Data 
Saved', true));
                                } else {
                                        $this->Session->setFlash(__('Data Not 
Saved', true));
                                }
                        }
                        $this->set('regulationsAndMarkets', 
$this->Firm->FirmProfile-
>ServiceAreaType->find('list',array('conditions'=>array(
                                'service_area_id'=>3)
                        )));
                        $this->set('ghgInventories', $this->Firm->FirmProfile-
>ServiceAreaType->find('list',array('conditions'=>array(
                                'service_area_id'=>1)
                        )));
                        $this->set('technologyAndEquipment', 
$this->Firm->FirmProfile-
>ServiceAreaType->find('list',array('conditions'=>array(
                                'service_area_id'=>4)
                        )));
                        $this->set('industryExperience', 
$this->Firm->FirmProfile-
>ServiceAreaType->find('list',array('conditions'=>array(
                                'service_area_id'=>2)
                        )));
                        $firm_data = $this->Session->read('data'); // Read firm 
data from
session
                        $this->set('firm_id',$firm_data['Firm']['id']); // Set 
variable
firm_id for lookups
                        $this->set('firm_data',$firm_data); // Set firm_data 
view array
with data from session
                }

My view:

<?php echo $form->create('Firm.FirmProfile',array('url'=>array
('controller'=>'firms','action'=>'add'.'/step3')));?>

<fieldset>

<legend>Regulations and Markets</legend>
<?php echo $form->input('ServiceAreaType.ServiceAreaType',array
('options'=>
$regulationsAndMarkets,'label'=>'','multiple'=>'checkbox'));?>
</fieldset>

<fieldset>
<legend>GHG Inventories</legend>
<?php echo $form->input('ServiceAreaType.ServiceAreaType',array
('options'=>$ghgInventories,'label'=>'','multiple'=>'checkbox'));?>
</fieldset>

<fieldset>
<legend>Technology and Equipment</legend>
<?php echo $form->input('ServiceAreaType.ServiceAreaType',array
('options'=>
$technologyAndEquipment,'label'=>'','multiple'=>'checkbox'));?>
</fieldset>

<fieldset>
<legend>Industry experience and expertise</legend>
<?php echo $form->input('ServiceAreaType.ServiceAreaType',array
('options'=>$industryExperience,'label'=>'','multiple'=>'checkbox'));?
>
</fieldset>

<?php echo $form->input('FirmProfile.id',array('value'=>$firm_data
['FirmProfile']['id'],'type'=>'hidden'));?>

<?php echo $form->end('Continue');?>

Basically, I want the user to be able to select multiple items within
each different group, and have the HABTM relationships added when
doing so.  Right now, only the last group is saving.  I have found out
that this has something to do with the fact that you cannot POST
multiple select groups with the same Name, and cake is creating the
following HTML with this code:

<form id="FirmProfileEditForm" method="post" action="/theclimatepages/
firms/add/step3/32"><fieldset style="display:none;"><input
type="hidden" name="_method" value="PUT" /></fieldset>
<fieldset>

<legend>Regulations and Markets</legend>
<div class="input select"><label
for="ServiceAreaTypeServiceAreaType"></label><input type="hidden"
name="data[ServiceAreaType][ServiceAreaType]" value="" />

<div class="checkbox"><input type="checkbox" name="data
[ServiceAreaType][ServiceAreaType][]" value="4"
id="ServiceAreaTypeServiceAreaType4" /><label
for="ServiceAreaTypeServiceAreaType4">GHG Regulatory Compliance</
label></div>
<div class="checkbox"><input type="checkbox" name="data
[ServiceAreaType][ServiceAreaType][]" value="6"
id="ServiceAreaTypeServiceAreaType6" /><label
for="ServiceAreaTypeServiceAreaType6">Carbon Market Advisory Services</
label></div>
<div class="checkbox"><input type="checkbox" name="data
[ServiceAreaType][ServiceAreaType][]" value="7"
id="ServiceAreaTypeServiceAreaType7" /><label
for="ServiceAreaTypeServiceAreaType7">Legal Services</label></div>

<div class="checkbox"><input type="checkbox" name="data
[ServiceAreaType][ServiceAreaType][]" value="8"
id="ServiceAreaTypeServiceAreaType8" /><label
for="ServiceAreaTypeServiceAreaType8">Permit analysis and acquisition</
label></div>
</div></fieldset>

<fieldset>
<legend>GHG Inventories</legend>
<div class="input select"><label
for="ServiceAreaTypeServiceAreaType"></label><input type="hidden"
name="data[ServiceAreaType][ServiceAreaType]" value="" />

<div class="checkbox"><input type="checkbox" name="data
[ServiceAreaType][ServiceAreaType][]" value="13"
id="ServiceAreaTypeServiceAreaType13" /><label
for="ServiceAreaTypeServiceAreaType13">Pre-verification services /
auditing</label></div>
<div class="checkbox"><input type="checkbox" name="data
[ServiceAreaType][ServiceAreaType][]" value="14"
id="ServiceAreaTypeServiceAreaType14" /><label
for="ServiceAreaTypeServiceAreaType14">Building a GHG inventory</
label></div>
<div class="checkbox"><input type="checkbox" name="data
[ServiceAreaType][ServiceAreaType][]" value="15"
id="ServiceAreaTypeServiceAreaType15" /><label
for="ServiceAreaTypeServiceAreaType15">Life-cycle analysis</label></
div>
<div class="checkbox"><input type="checkbox" name="data
[ServiceAreaType][ServiceAreaType][]" value="16"
id="ServiceAreaTypeServiceAreaType16" /><label
for="ServiceAreaTypeServiceAreaType16">Training</label></div>

<div class="checkbox"><input type="checkbox" name="data
[ServiceAreaType][ServiceAreaType][]" value="17"
id="ServiceAreaTypeServiceAreaType17" /><label
for="ServiceAreaTypeServiceAreaType17">Validation</label></div>
</div></fieldset>

<fieldset>
<legend>Technology and Equipment</legend>
<div class="input select"><label
for="ServiceAreaTypeServiceAreaType"></label><input type="hidden"
name="data[ServiceAreaType][ServiceAreaType]" value="" />

<div class="checkbox"><input type="checkbox" name="data
[ServiceAreaType][ServiceAreaType][]" value="9"
id="ServiceAreaTypeServiceAreaType9" /><label
for="ServiceAreaTypeServiceAreaType9">Energy audits</label></div>
<div class="checkbox"><input type="checkbox" name="data
[ServiceAreaType][ServiceAreaType][]" value="10"
id="ServiceAreaTypeServiceAreaType10" /><label
for="ServiceAreaTypeServiceAreaType10">Enviornmental Software</label></
div>
<div class="checkbox"><input type="checkbox" name="data
[ServiceAreaType][ServiceAreaType][]" value="11"
id="ServiceAreaTypeServiceAreaType11" /><label
for="ServiceAreaTypeServiceAreaType11">Engineering analysis</label></
div>
<div class="checkbox"><input type="checkbox" name="data
[ServiceAreaType][ServiceAreaType][]" value="12"
id="ServiceAreaTypeServiceAreaType12" /><label
for="ServiceAreaTypeServiceAreaType12">Metering equipment / hardware</
label></div>

</div></fieldset>

<fieldset>
<legend>Industry experience and expertise</legend>
<div class="input select"><label
for="ServiceAreaTypeServiceAreaType"></label><input type="hidden"
name="data[ServiceAreaType][ServiceAreaType]" value="" />

<div class="checkbox"><input type="checkbox" name="data
[ServiceAreaType][ServiceAreaType][]" checked="checked" value="18"
id="ServiceAreaTypeServiceAreaType18" /><label
for="ServiceAreaTypeServiceAreaType18" class="selected">Electric Power
Sector</label></div>
<div class="checkbox"><input type="checkbox" name="data
[ServiceAreaType][ServiceAreaType][]" checked="checked" value="19"
id="ServiceAreaTypeServiceAreaType19" /><label
for="ServiceAreaTypeServiceAreaType19" class="selected">Oil and Gas
Sector</label></div>
<div class="checkbox"><input type="checkbox" name="data
[ServiceAreaType][ServiceAreaType][]" checked="checked" value="20"
id="ServiceAreaTypeServiceAreaType20" /><label
for="ServiceAreaTypeServiceAreaType20" class="selected">Cement Sector</
label></div>
<div class="checkbox"><input type="checkbox" name="data
[ServiceAreaType][ServiceAreaType][]" checked="checked" value="21"
id="ServiceAreaTypeServiceAreaType21" /><label
for="ServiceAreaTypeServiceAreaType21" class="selected">Manufacturing
Sector</label></div>
</div></fieldset>

<input type="hidden" name="data[FirmProfile][id]" value="32"
id="FirmProfileId" />
<div class="submit"><input type="submit" value="Continue" /></div></
form>

I know this is a lot of code to wade through, but I'm at a brick wall
and would definitely appreciate any wisdom!  Thanks so much.

-Scott

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to