Ho un form che fa un insert in due model diversi, ma non riesco a passare il valore della checkbox!,sulla form nella prima parte inserisco i campi che dovranno inserire sul primo model (attivita), dopo carico la lista dei checkbox(model fixgruppi), selezionando questi, faccio un ciclo per vedere quanti valori sono stati selezionati, passo questi valori al model guppo…, facendo un inserimento multiplo…, ma mi da "errore" o meglio mi dice che il valore di input non è valido…, quindi al post non glielo passa proprio
View attivita
<h1>Login</h1>
<p>Please fill out the following form with your login credentials:</p>
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'attivita-form',
'enableClientValidation'=>true,
'action'=>Yii::app()->createAbsoluteUrl('register/attivita/create'),
'htmlOptions' => array( 'multiple' => 'multiple', 'enctype' => 'multipart/form-data','class'=>'form-horizontal'),
)); ?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<?php echo $form->errorSummary(array($attivita,$fixgroup)); ?>
<div class="form-group">
<?php echo $form->labelEx($attivita,'nome',array('class'=>'col-md-2 control-label')); ?>
<div class="col-md-10">
<?php echo $form->textField($attivita,'nome',array('class'=>'form-control input-default','placeholder'=>'Inserisci Nome Attività','id'=>'nome')); ?>
</div>
<?php echo $form->error($attivita,'nome'); ?>
</div>
<div class="form-group">
<?php echo $form->labelEx($attivita,'descrizione',array('class'=>'col-md-2 control-label')); ?>
<div class="col-md-10">
<?php echo $form->textArea($attivita,'descrizione',array('class'=>'form-control input-default','placeholder'=>'Descrione','id'=>'descrizione','onchange'=>'TestOnTextChange()')); ?>
<?php echo $form->error($attivita,'descrizione'); ?>
</div>
</div>
<!--- CARICO LE CHECKBOX DAL DATABASE--->
<?php
$type_list=CHtml::listData(Fixgruppi::model()->findAll(),'id','categorie');
echo $form->checkBoxList($fixgroup,'categorie',$type_list);
?>
<div class="conferma">
<?php echo CHtml::submitButton($attivita->isNewRecord ? 'Create' : 'Save',array('class'=>'btn btn-primary','id'=>'conferma')); ?>
</div>
<?php $this->endWidget(); ?>
</div>
CONTROLLER Attivita
public function actionCreate()
{
$attivita = new Attivita;
$gruppo = new Gruppo;
$fixgroup = new Fixgruppi;
$this->performAjaxValidation(array($attivita,$fixgroup));
if(isset($_POST['Attivita'],$_POST['Fixgruppi']))
{
// input data to $attivita
$attivita->attributes=$_POST['Attivita'];
$attivita->password=$attivita->hashPassword($_POST['Attivita']['password'],$session=$attivita->generateSalt());
$attivita->session=$session;
// input data fixgruppi checkbox
$fixgroup->attributes=$_POST['Fixgruppi'];
// validate BOTH $attivita and $fixgruppi
$valid=$attivita->validate();
$valid=$fixgroup->validate() && $valid;
if($valid)
{
// use false parameter to disable validation
$attivita->save(false);
/*$fixgroup->attributes=$_POST['Fixgruppi'];*/
foreach($fixgroup->categorie as $checkbox_id){
echo $checkbox_id;
$gruppo->nome_gruppo = $checkbox_id;
$gruppo->categorie = $checkbox_id;
$gruppo->save(false);
}
$this->redirect('index');
}
}
$this->render('create',array('attivita'=>$attivita,'fixgroup'=>$fixgroup));
help