Enregistrer un formulaire avec x input en une seule fois
Je voudrais enregistrer en un seul passage tous mes informations dans une vue NEW.
Voici la vue:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
<?php
$oForm=new plugin_form($this->oSaisir);
$oForm2=new plugin_form($this->tActivite);
$oForm->setMessage($this->tMessage);
?>
<div class="container col-md-11 col-md-offset-1" >
<form class="form-horizontal" action="" method="POST" >
<h3 class="text-center ">Nouvelle saisie</h3>
<div class="form-group">
<div class="col-sm-offset-4 col-sm-4 ">
<?php echo $oForm->getInputText('exercer_date',array('class'=>'text-center form-control sandbox-container','placeholder'=> 'JJ/MM/AAAA','autocomplete'=>'off','data-provide' =>'datepicker')) ?>
</div>
</div>
<?php foreach($this->tActivite as $key => $oActivite):?>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-4">
<!--<?php //echo $oForm2->getInputText($sActivite,array('class'=>'text-center form-control'))?>-->
<?php echo $oActivite;?>
<input type="hidden" name="<?php echo $oActivite;?>" value=<?php echo $key;?>>
</div>
<div class="col-sm-2"><?php echo $oForm->getInputText('resultat_activite',array('class'=>'form-control','autocomplete'=>'off')) ?>
</div>
</div>
<?php endforeach;?>
<input type="hidden" name="users_id" value="<?php echo _root::getAuth()->getAccount()->id ?>"/>
<?php echo $oForm->getToken('token',$this->token)?>
<div class="form-group">
<div class="col-sm-offset-7 col-sm-5">
<input type="submit" class="btn btn-success" value="Ajouter" /> <a class="btn btn-link" href="<?php echo $this->getLink('saisir::list')?>">Annuler</a>
</div>
</div>
</form>
</div> |
Voici le main avec la methode NEW:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
public function _new(){
$tMessage=$this->processSave();
$oSaisir=new row_saisir;
$agent=_root::getAuth()->getAccount()->id;
$oService = model_rattacher::getInstance()->findByIdService($agent);
$var=$oService->rattacher_service_id;
$oView=new _view('saisir::new');
$oView->oSaisir = $oSaisir;
$tActivite = model_activite::getInstance()->getSelect2($var);
$oView->tActivite =$tActivite;
$oView->tJoinmodel_users = model_users::getInstance()->getSelect();
$oView->tJoinmodel_activite = model_activite::getInstance()->getSelect2($var);
$oPluginXsrf=new plugin_xsrf();
$oView->token=$oPluginXsrf->getToken();
$oView->tMessage=$tMessage;
$this->oLayout->add('main',$oView);
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
private function processSave(){
if(!_root::getRequest()->isPost() ){ //si ce n'est pas une requete POST on ne soumet pas
return null;
}
$oPluginXsrf=new plugin_xsrf();
if(!$oPluginXsrf->checkToken( _root::getParam('token') ) ){ //on verifie que le token est valide
return array('token'=>$oPluginXsrf->getMessage() );
}
$iId=_root::getParam('id',null);
if($iId==null){
$oSaisir=new row_saisir;
}else{
$oSaisir=model_saisir::getInstance()->findById( _root::getParam('id',null) );
}
$tId=model_saisir::getInstance()->getIdTab();
$tColumn=array('users_id','activite_id','exercer_date','resultat_activite');
foreach($tColumn as $sColumn){
if (_root::getParam($sColumn,null) == null) {
continue;
} else if (in_array($sColumn,$tId)) {
continue;
}
$oSaisir->$sColumn=_root::getParam($sColumn,null) ;
}
if($oSaisir->isValid()){
$agent=_root::getAuth()->getAccount()->id;
$oService = model_rattacher::getInstance()->findByIdService($agent);
$var=$oService->rattacher_service_id;
$tActivite = model_activite::getInstance()->getSelect2($var);
foreach($tActivite as $key => $oActivite) {
$oSaisir = new row_saisir;
$oSaisir->activite_id=$key;
$oSaisir->resultat_activite=$resultat_activite;
$oSaisir->save();
}
//une fois enregistre on redirige (vers la page liste)
_root::redirect('saisir::list');
} else {
return $oSaisir->getListError();
}
} |
Ca ne marche pas pourquoi?