Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MkFramework Discussion :

Création d'un formulaire


Sujet :

MkFramework

  1. #21
    Rédacteur

    Dans le zip fournit en piece jointe (issu d'un précédent post de cette discussion)
    on gère bien la redirection apres une evaluation:

    lorque l'on clique sur classe/show > eleves/show > on a bien un tableau d'evaluation et lorsque l'on clique sur valider on revient sur la meme page et en dessous le tableau des evaluations est mis à jour
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  2. #22
    Membre régulier
    Bonjour,

    Je viens de comparer mon fichier au votre et je ne vois pas de différence.
    La méthode de redirection après avoir "new" est bien dans la méthode save() de main.php?

    dans votre fichier _redirect()
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    public static function redirect($sModuleAction,$tModuleParam=null){
    		return parent::_redirect(self::$sRootModule,self::$tRootParams,self::$sModuleName,$sModuleAction,$tModuleParam);
    	}

    Dans le mien
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public static function redirect($sModuleAction,$tModuleParam=null){
    		return parent::_redirect(self::$sRootModule,self::$tRootParams,self::$sModuleName,$sModuleAction,$tModuleParam);
    	//print "appel redirect avec ".self::$sRootModule." ".self::$tRootParams." ".self::$sModuleName." ".print_r($tModuleParam,1);
    	//exit;
    	}


    Pour la methode news() dans le votre
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public function _new(){
    		$tMessage=$this->save();
     
    		$oEvaluation=new row_evaluation;
     
    		$oView=new _view('evaluation::new');
    		$oView->oEvaluation=$oEvaluation;
     
    		$oView->tJoinmodel_machine=model_machine::getInstance()->getSelect();
     
    		$oPluginXsrf=new plugin_xsrf();
    		$oView->token=$oPluginXsrf->getToken();
    		$oView->tMessage=$tMessage;
     
    		return $oView;
    	}

    Dans le mien
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    	public function _new(){
    		$tMessage=$this->save();
     
    		$oEvaluations=new row_evaluations;
     
    		$oView=new _view('evaluations::new');
    		$oView->oEvaluations=$oEvaluations;	
    		$oView->tJoinmodel_machines=model_machines::getInstance()->getSelect();	
     
    		$oPluginXsrf=new plugin_xsrf();
    		$oView->token=$oPluginXsrf->getToken();
    		$oView->tMessage=$tMessage;
     
    		return $oView;
    	}

    Pour le save() dans le votre
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    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
    	public function save(){
    		if(!_root::getRequest()->isPost() or _root::getParam('formmodule')!=self::$sModuleName ){ //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=module_evaluation::getParam('id',null);
    		if($iId==null){
    			$oEvaluation=new row_evaluation;	
    		}else{
    			$oEvaluation=model_evaluation::getInstance()->findById( module_evaluation::getParam('id',null) );
    		}
     
    		$tId=model_evaluation::getInstance()->getIdTab();
    		$tColumn=model_evaluation::getInstance()->getListColumn();
    		foreach($tColumn as $sColumn){
    			 if(isset($_FILES[$sColumn]) and $_FILES[$sColumn]['size'] > 0){
    				$sNewFileName='data/upload/'.$sColumn.'_'.date('Ymdhis');
     
    				$oPluginUpload=new plugin_upload($_FILES[$sColumn]);
    				$oPluginUpload->saveAs($sNewFileName);
    				$oEvaluation->$sColumn=$oPluginUpload->getPath();
    				continue;	
    			}else  if( _root::getParam($sColumn,null) === null ){ 
    				continue;
    			}else if( in_array($sColumn,$tId)){
    				 continue;
    			}
     
    			$oEvaluation->$sColumn=_root::getParam($sColumn,null) ;
    		}
     
    		$oEvaluation->eleve_id=module_eleves::getParam('id');
     
    		if($oEvaluation->save()){
    			//une fois enregistre on redirige (vers la page liste)
    			$this->redirect('list');
    		}else{
    			return $oEvaluation->getListError();
    		}
     
    	}

    dans le mien
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    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
    public function save(){
    		if(!_root::getRequest()->isPost() or _root::getParam('formmodule')!=self::$sModuleName ){ //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=module_evaluations::getParam('id',null);
    		if($iId==null){
    			$oEvaluations=new row_evaluations;	
    		}else{
    			$oEvaluations=model_evaluations::getInstance()->findById( module_evaluations::getParam('id',null) );
    		}
     
    		$tId=model_evaluations::getInstance()->getIdTab();
    		$tColumn=model_evaluations::getInstance()->getListColumn();
    		foreach($tColumn as $sColumn){
    			 if(isset($_FILES[$sColumn]) and $_FILES[$sColumn]['size'] > 0){
    				$sNewFileName='data/upload/'.$sColumn.'_'.date('Ymdhis');
     
    				$oPluginUpload=new plugin_upload($_FILES[$sColumn]);
    				$oPluginUpload->saveAs($sNewFileName);
    				$oEvaluations->$sColumn=$oPluginUpload->getPath();
    				continue;	
    			}else  if( _root::getParam($sColumn,null) === null ){ 
    				continue;
    			}else if( in_array($sColumn,$tId)){
    				 continue;
    			}
     
    			$oEvaluations->$sColumn=_root::getParam($sColumn,null) ;
    		}
    		$oEvaluations->eleve_user_id=module_eleves::getParam('id');
     
    		if($oEvaluations->save()){
    			//une fois enregistre on redirige (vers la page liste)
    			$this->redirect('list');
    		}else{
    			return $oEvaluations->getListError();
    		}	
    	}


    La différence est au niveau de mes modules qui sont au pluriel apres le vois pas pourquoi.
    La redirection peut se faire par un autre biais?

  3. #23
    Rédacteur

    Le problème est-il encore ouvert ?
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux