This is my current working _form.php:
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'products-form',
'htmlOptions'=>array(
'enctype'=>'multipart/form-data'),
'enableAjaxValidation'=>false,
)); ?>
...........
<table>
<?php foreach($prodcats as $i=>$prodcat) { ?>
<tr>
<?php echo $form->hiddenField($prodcat, "[$i]prod_cat_id") ?>
<td><?php echo $form->dropDownList($prodcat,"[$i]cat_id",$catList, $htmlOptions=array('empty'=>'Select Category')); ?><?php echo $form->error($prodcat,"[$i]cat_id"); ?></td>
<td><?php echo CHtml::link('Delete', $url=array('products/deleteProdCat', 'prod_cat_id'=>$prodcat->prod_cat_id));?></td>
</tr>
<?php
}
if(!empty($prodcats)){ $i++; }
$prodcat = new ProdCat();
?>
<tr>
<td><?php echo $form->dropDownList($prodcat,"[$i]cat_id",$catList, $htmlOptions=array('empty'=>'Select Category')); ?><?php echo $form->error($prodcat,"[$i]cat_id"); ?></td><td>New</td>
</tr>
</table>
......
I was trying to replace that example with (Please note it is simplified):
<?php
$this->widget('zii.widgets.CListView', array(
'dataProvider'=>$prodcats,
'itemView'=>'_cats',
'template'=>'{items}'
));
?>
This would work in the _cats view file:
echo $data->prod_cat_id
This won’t work
<?php
$this->widget('zii.widgets.CListView', array(
'dataProvider'=>$prodcats,
'itemView'=>'_cats',
'template'=>'{items}',
'viewData'=>$form
));
?>
echo $form->hiddenField($data, 'prod_cat_id') (or something like that probably needs to be $data->form)
Because $form is an object and viewData needs to be an array, passing an array would break break the CAvtiveForm, I think.