I have a page where multiple email addresses can be updated and they are currently displayed inside an array and I can’t figure out how to validate an array for a model. I tried using setOffset but it didn’t appear to work.
foreach($_POST['userStatusEmail'] as $userStatusEmailKey=>$userStatusEmailVal)
{
$autoEmail->email = $autoEmail->email->offsetSet($userStatusEmailKey, $userStatusEmailVal);
}
<? $form = $this->beginWidget('bootstrap.widgets.TbActiveForm', array(
'id'=>'autoEmailForm',
'type'=>'vertical',
'action'=>'',
'enableClientValidation'=>true,
'enableAjaxValidation'=>true,
'clientOptions'=>array(
'validationUrl'=>'',
'validateOnSubmit'=>true,
'afterValidate'=>'js:function(form, data, hasError) {
return false;
}'
),
)); ?>
<?
$prevStatusName='';
foreach($userStatusEmails as $userStatusEmail): ?>
<? if($prevStatusName != $userStatusEmail->statusName): ?>
<h5><?=$userStatusEmail->statusName; ?></h5>
<? endif; ?>
<div style="margin-bottom:5px;">
<?=$form->textField($autoEmail, 'email', array('value'=>$userStatusEmail->email, 'name'=>'userStatusEmail[email]['.$userStatusEmail->id.']'));?>
<?=$form->error($autoEmail, 'email');?>
<?//CHtml::textField('userStatusEmail['.$userStatusEmail->id.']', $userStatusEmail->email, array('autocomplete'=>'off', 'maxlength'=>'300')); ?>
<?//CHtml::error($autoEmail, 'email');?>
</div>
<?
$prevStatusName=$userStatusEmail->statusName;
endforeach; ?>
<?php $this->widget('bootstrap.widgets.TbButton', array(
'buttonType'=>'submit',
'type'=>'btn',
'label'=>'Save',
'htmlOptions'=>array('class'=>''),
'ajaxOptions' => array(
'dataType'=>'json',
'success'=>'function(data) {
}'),
)); ?>
<? $this->endWidget(); ?>