IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 :

La methode_new n'enregistre pas mes données dans mysql


Sujet :

MkFramework

  1. #1
    Membre habitué
    Homme Profil pro
    Assistant statisticien
    Inscrit en
    Juillet 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Assistant statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2009
    Messages : 132
    Points : 168
    Points
    168
    Par défaut La methode_new n'enregistre pas mes données dans mysql
    Voici ma classe model
    <?php
    class model_saisir extends abstract_model{

    protected $sClassRow='row_saisir';

    protected $sTable='saisir';
    protected $sConfig='PE';

    protected $tId=array('id');

    public static function getInstance(){
    return self::_getInstance(__CLASS__);
    }

    public function findByUsersId($id){
    return $this->findMany('SELECT * FROM '.$this->sTable.' WHERE user_id=?',$id );
    }

    public function findById($uId){
    return $this->findOne('SELECT * FROM '.$this->sTable.' WHERE id=?',$uId );
    }

    public function findAll(){
    return $this->findMany('SELECT * FROM '.$this->sTable);
    }
    public function findAllAdmin(){
    return $this->findMany('SELECT * FROM '.$this->sTable);
    }




    }

    class row_saisir extends abstract_row{

    protected $sClassModel='model_saisir';

    /*exemple jointure
    public function findAuteur(){
    return model_auteur::getInstance()->findById($this->auteur_id);
    }
    */
    /*exemple test validation*/
    private function getCheck(){
    $oPluginValid=new plugin_valid($this->getTab());


    /* renseigner vos check ici
    $oPluginValid->isEqual('champ','valeurB','Le champ n\est pas &eacute;gal &agrave; '.$valeurB);
    $oPluginValid->isNotEqual('champ','valeurB','Le champ est &eacute;gal &agrave; '.$valeurB);
    $oPluginValid->isUpperThan('champ','valeurB','Le champ n\est pas sup&eacute; &agrave; '.$valeurB);
    $oPluginValid->isUpperOrEqualThan('champ','valeurB','Le champ n\est pas sup&eacute; ou &eacute;gal &agrave; '.$valeurB);
    $oPluginValid->isLowerThan('champ','valeurB','Le champ n\est pas inf&eacute;rieur &agrave; '.$valeurB);
    $oPluginValid->isLowerOrEqualThan('champ','valeurB','Le champ n\est pas inf&eacute;rieur ou &eacute;gal &agrave; '.$valeurB);
    $oPluginValid->isEmpty('champ','Le champ n\'est pas vide');
    $oPluginValid->isNotEmpty('champ','Le champ ne doit pas &ecirc;tre vide');
    $oPluginValid->isEmailValid('champ','L\email est invalide');
    $oPluginValid->matchExpression('champ','/[0-9]/','Le champ n\'est pas au bon format');
    $oPluginValid->notMatchExpression('champ','/[a-zA-Z]/','Le champ ne doit pas &ecirc;tre a ce format');

    $oPluginValid->matchExpression('prn_aas','/[0-9]/','Le champ n\'est pas au bon format');
    */
    return $oPluginValid;
    }

    public function isValid(){
    return $this->getCheck()->isValid();
    }
    public function getListError(){
    return $this->getCheck()->getListError();
    }
    public function save(){
    if(!$this->isValid()){
    return false;
    }
    parent::save();
    return true;
    }

    }
    Voici la class main de mon module saisir
    class module_saisir extends abstract_module{

    public function before(){
    $this->oLayout=new _layout('bootstrap');

    $this->oLayout->addModule('menu','menu::index');
    }


    public function _index(){
    //on considere que la page par defaut est la page de listage
    $this->_list();
    }


    public function _list(){
    $id=_root::getAuth()->getAccount()->id;

    if ($id===1) {
    $oSaisir=model_saisir::getInstance()->findAllAdmin();
    } else {
    $oSaisir=model_saisir::getInstance()->findByUsersId($id);
    }


    $oView=new _view('saisir::list');
    $oView->oSaisir=$oSaisir;

    $oView->tJoinmodel_users=model_users::getInstance()->getSelect();

    $this->oLayout->add('main',$oView);



    }



    public function _new(){
    $tMessage=$this->processSave();

    $oSaisir=new row_saisir;

    $oView=new _view('saisir::new');
    $oView->oSaisir=$oSaisir;



    $oPluginXsrf=new plugin_xsrf();
    $oView->token=$oPluginXsrf->getToken();
    $oView->tMessage=$tMessage;

    $this->oLayout->add('main',$oView);
    }



    public function _edit(){
    $tMessage=$this->processSave();

    $oSaisir=model_saisir::getInstance()->findById( _root::getParam('id') );

    $oView=new _view('saisir::edit');
    $oView->oSaisir=$oSaisir;
    $oView->tId=model_saisir::getInstance()->getIdTab();



    $oPluginXsrf=new plugin_xsrf();
    $oView->token=$oPluginXsrf->getToken();
    $oView->tMessage=$tMessage;

    $this->oLayout->add('main',$oView);
    }



    public function _show(){
    $oSaisir=model_saisir::getInstance()->findById( _root::getParam('id') );

    $oView=new _view('saisir::show');
    $oView->oSaisir=$oSaisir;



    $this->oLayout->add('main',$oView);
    }



    public function _delete(){
    $tMessage=$this->processDelete();

    $oSaisir=model_saisir::getInstance()->findById( _root::getParam('id') );

    $oView=new _view('saisir::delete');
    $oView->oSaisir=$oSaisir;



    $oPluginXsrf=new plugin_xsrf();
    $oView->token=$oPluginXsrf->getToken();
    $oView->tMessage=$tMessage;

    $this->oLayout->add('main',$oView);
    }



    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) );
    }

    $tColumn=array('user_id','saisir_date','saisir_absence','dysf_panne_info','observations','prn_aas','prn_pas','prn_personnel','prn_rejet','prn_signalement','recla_medialog','recla_eptica','recla_bal','recla_diad','recla_ass','courrier_ave','courrier_sanction50','courrier_sanction100','courrier_retour','autres_pj_diad','autres_lm2a','autres_destin','autres_ij_amexa','autres_indus','autres_rejet_diad','autres_solde_papier','dsij_auto','dsij_manuel','kdc_paiement','kdc_rejets','pe_non_subro_mal','pe_non_subro_mat_pat','pe_non_subro_pamc','pe_subro_mal','pe_subro_mat_pat','pe_subro_ij_personnel','echeancier_ok','echeancier_rejet','echeancier_relance');
    foreach($tColumn as $sColumn){
    $oSaisir->$sColumn=_root::getParam($sColumn,null) ;
    }


    if($oSaisir->save()){
    //une fois enregistre on redirige (vers la page liste)
    _root::redirect('saisir::list');
    }else{
    return $oSaisir->getListError();
    }

    }


    public function processDelete(){
    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() );
    }

    $oSaisir=model_saisir::getInstance()->findById( _root::getParam('id',null) );

    $oSaisir->delete();
    //une fois enregistre on redirige (vers la page liste)
    _root::redirect('saisir::list');

    }


    public function after(){
    $this->oLayout->show();
    }


    }
    voici la vue
    <?php
    $oForm=new plugin_form($this->oSaisir);
    $oForm->setMessage($this->tMessage);
    ?>
    <header class="page-header">
    <h2 class="text-center">GROUPE IJ - FICHE STATISTIQUES JOURNALIERES</h2>

    </header>

    <form class="form-inline" action="" method="POST" >
    <section class="row">
    <form class="form-inline">
    <div class="form-group">
    <label class="control-label">En date du</label>
    <?php echo $oForm->getInputText('saisir_date',array('class'=>'form-control text-center')) ?>
    </div>
    <div class="form-group">
    <label class="control-label">, absence</label>
    <?php echo $oForm->getInputText('saisir_absence',array('class'=>'form-control text-center','placeholder'=> '0.5 ou 1')) ?>
    </div>

    <div class="form-group">
    <label class="control-label">, avec dysfonctionnement et/ou panne informatique</label>
    <?php echo $oForm->getInputText('dysf_panne_info',array('class'=>'form-control text-center','placeholder'=> 'en minutes')) ?>
    </div>
    </form>
    </section>
    <p> </p>
    <section class="row">
    <div class="form-group">
    <label class="sr-only" for="observations">Observations</label>
    <?php echo $oForm->getInputTextarea('observations',array('class'=>'form-control text-center','id'=>'observations','placeholder'=> 'Observations')) ?>
    </div>
    </section>

    <div class="row ">
    <section class="col-sm-4 table-responsive">
    <table class="table table-bordered table-striped table-condensed">
    <thead>
    <tr>
    <th colspan="2" class="text-center"><h4>PRN</h4></th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td>AAS</td>
    <td><?php echo $oForm->getInputText('prn_aas',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>PAS</td>
    <td><?php echo $oForm->getInputText('prn_pas',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>PERSONNEL</td>
    <td><?php echo $oForm->getInputText('prn_personnel',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>REJET</td>
    <td><?php echo $oForm->getInputText('prn_rejet',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>SIGNALEMENT</td>
    <td><?php echo $oForm->getInputText('prn_signalement',array('class'=>'form-control text-center')) ?></td>
    </tr>
    </tbody>
    </table>
    </section>

    <section class="col-sm-4 table-responsive">
    <table class="table table-bordered table-striped table-condensed">
    <thead>
    <tr>
    <th colspan="2" class="text-center"><h4>AUTRES</h4></th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td>PJ DIADEME</td>
    <td><?php echo $oForm->getInputText('autres_pj_diad',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>LM2A</td>
    <td><?php echo $oForm->getInputText('autres_lm2a',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>DESTIN</td>
    <td><?php echo $oForm->getInputText('autres_destin',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>IJ AMEXA</td>
    <td><?php echo $oForm->getInputText('autres_ij_amexa',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>INDUS</td>
    <td><?php echo $oForm->getInputText('autres_indus',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>REJETS DIADEME</td>
    <td><?php echo $oForm->getInputText('autres_rejet_diad',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>SOLDE PAPIER</td>
    <td><?php echo $oForm->getInputText('autres_solde_papier',array('class'=>'form-control text-center')) ?></td>
    </tr>
    </tbody>
    </table>
    </section>

    <section class="col-sm-4 table-responsive">
    <table class="table table-bordered table-striped table-condensed">
    <thead>
    <tr>
    <th colspan="2" class="text-center"><h4>NON SUBRO</h4></th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td>MAL</td>
    <td><?php echo $oForm->getInputText('pe_non_subro_mal',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>MAT / PAT</td>
    <td><?php echo $oForm->getInputText('pe_non_subro_mat_pat',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>PAMC</td>
    <td><?php echo $oForm->getInputText('pe_non_subro_pamc',array('class'=>'form-control text-center')) ?></td>
    </tr>
    </tbody>
    </table>
    </section>
    </div>

    <div class="row ">
    <section class="col-sm-4 table-responsive">
    <table class="table table-bordered table-striped table-condensed">
    <thead>
    <tr>
    <th colspan="2" class="text-center"><h4>RECLAMATIONS</h4></th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td>MEDIALOG</td>
    <td><?php echo $oForm->getInputText('recla_medialog',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>EPTICA</td>
    <td><?php echo $oForm->getInputText('recla_eptica',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>BAL RECLA</td>
    <td><?php echo $oForm->getInputText('recla_bal',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>RECLA DIADEME</td>
    <td><?php echo $oForm->getInputText('recla_diad',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>RECLA ASSURE</td>
    <td><?php echo $oForm->getInputText('recla_ass',array('class'=>'form-control text-center')) ?></td>
    </tr>
    </tbody>
    </table>
    </section>

    <section class="col-sm-4 table-responsive">
    <table class="table table-bordered table-striped table-condensed">
    <thead>
    <tr>
    <th colspan="2" class="text-center"><h4>DSIJ</h4></th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td>AUTO</td>
    <td><?php echo $oForm->getInputText('dsij_auto',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>MANUEL</td>
    <td><?php echo $oForm->getInputText('dsij_manuel',array('class'=>'form-control text-center')) ?></td>
    </tr>
    </tbody>
    </table>
    </section>

    <section class="col-sm-4 table-responsive">
    <table class="table table-bordered table-striped table-condensed">
    <thead>
    <tr>
    <th colspan="2" class="text-center"><h4>SUBRO</h4></th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td>MAL</td>
    <td><?php echo $oForm->getInputText('pe_subro_mal',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>MAT / PAT</td>
    <td><?php echo $oForm->getInputText('pe_subro_mat_pat',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>IJ PERSONNEL</td>
    <td><?php echo $oForm->getInputText('pe_subro_ij_personnel',array('class'=>'form-control text-center')) ?></td>
    </tr>
    </tbody>
    </table>
    </section>
    </div>

    <div class="row ">
    <section class="col-sm-4 table-responsive">
    <table class="table table-bordered table-striped table-condensed">
    <thead>
    <tr>
    <th colspan="2" class="text-center"><h4>COURRIERS</h4></th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td>AVE</td>
    <td><?php echo $oForm->getInputText('courrier_ave',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>SANCTION 50</td>
    <td><?php echo $oForm->getInputText('courrier_sanction50',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>SANCTION 100</td>
    <td><?php echo $oForm->getInputText('courrier_sanction100',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>RETOUR COURRIER</td>
    <td><?php echo $oForm->getInputText('courrier_retour',array('class'=>'form-control text-center')) ?></td>
    </tr>
    </tbody>
    </table>
    </section>

    <section class="col-sm-4 table-responsive">
    <table class="table table-bordered table-striped table-condensed">
    <thead>
    <tr>
    <th colspan="2" class="text-center"><h4>KDC</h4></th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td>PAIEMENT</td>
    <td><?php echo $oForm->getInputText('kdc_paiement',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>REJETS/td>
    <td><?php echo $oForm->getInputText('kdc_rejets',array('class'=>'form-control text-center')) ?></td>
    </tr>
    </tbody>
    </table>
    </section>

    <section class="col-sm-4 table-responsive">
    <table class="table table-bordered table-striped table-condensed">
    <thead>
    <tr>
    <th colspan="2" class="text-center"><h4>ECHEANCIER</h4></th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td>OK</td>
    <td><?php echo $oForm->getInputText('echeancier_ok',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>REJET</td>
    <td><?php echo $oForm->getInputText('echeancier_rejet',array('class'=>'form-control text-center')) ?></td>
    </tr>
    <tr>
    <td>RELANCE</td>
    <td><?php echo $oForm->getInputText('echeancier_relance',array('class'=>'form-control text-center')) ?></td>
    </tr>
    </tbody>
    </table>
    </section>
    </div>

    </div>


    <?php echo $oForm->getToken('token',$this->token)?>

    <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
    <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>
    dites moi pourquoi lorsque j'appuie sur Ajouter rien ne se passe?

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Attention: il y a deux form: le second "écrasant" le premier, celui-ci n'est pas en "post"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form class="form-inline" action="" method="POST" >
    <section class="row">
    <form class="form-inline">
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Membre habitué
    Homme Profil pro
    Assistant statisticien
    Inscrit en
    Juillet 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Assistant statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2009
    Messages : 132
    Points : 168
    Points
    168
    Par défaut Merci
    Merci pour ta réponse.

    Une autre question : Comment dois je faire pour récupérer la valeur d'un getInputHidden pour l'insérer dans la base?

  4. #4
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Un input hidden reste un champ texte caché, un simple _root::getParam()
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  5. #5
    Membre habitué
    Homme Profil pro
    Assistant statisticien
    Inscrit en
    Juillet 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Assistant statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2009
    Messages : 132
    Points : 168
    Points
    168
    Par défaut Désolé
    Je me suis mal exprimé.

    Où et quand dans la function processSave je récupère le champ user_id pour qu'il puisse etre enregistré? sachant que user_id est une clé étrangère

  6. #6
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Ici:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $tColumn=array('user_id','saisir_date','saisir_absence','dysf_panne_info','observations','prn_aas','prn_pas','prn_personnel','prn_rejet','prn_signalement','recla_medialog','recla_eptica','recla_bal','recla_diad','recla_ass','courrier_ave','courrier_sanction50','courrier_sanction100','courrier_retour','autres_pj_diad','autres_lm2a','autres_destin','autres_ij_amexa','autres_indus','autres_rejet_diad','autres_solde_papier','dsij_auto','dsij_manuel','kdc_paiement','kdc_rejets','pe_non_subro_mal','pe_non_subro_mat_pat','pe_non_subro_pamc','pe_subro_mal','pe_subro_mat_pat','pe_subro_ij_personnel','echeancier_ok','echeancier_rejet','echeancier_relance');
    foreach($tColumn as $sColumn){
    $oSaisir->$sColumn=_root::getParam($sColumn,null) ;
    }

    Vous avez un tableau listant les champs qui seront à priori envoyé par le formulaire, pour chaque champ, vous mettez à jour sur la propriété de $oSaisir avec la valeur de formulaire du même nom (via _root::getParam($sColumn...)
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  7. #7
    Membre habitué
    Homme Profil pro
    Assistant statisticien
    Inscrit en
    Juillet 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Assistant statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2009
    Messages : 132
    Points : 168
    Points
    168
    Par défaut Suite desole
    Si tu regardes mon code c'est ce que j'ai mais qd je regarde dans la BD il me met NULL.
    Une idée ?

  8. #8
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Je vois ce champ "user_id" dans votre méthode processSave mais je ne le vois pas dans votre vue

    Aucun champ html dans le code fourni, le code fait donc un getParam de rien, d'ou le null
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  9. #9
    Membre habitué
    Homme Profil pro
    Assistant statisticien
    Inscrit en
    Juillet 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Assistant statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2009
    Messages : 132
    Points : 168
    Points
    168
    Par défaut SUite
    Merci pour l'info.
    Cela m'a permis de faire fonctionner saisir::edit.
    Mais saisir::new n'enregistre pas le champ user_id.
    Une idée?
    Pourtant j'ai la meme structure que les autres modules comportant une action new.
    je suis un peu perdu.

  10. #10
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    On a du mal à se comprendre:

    user_id c'est bien un champ externe: une clé etrangère vers une autre table ?

    Dans la vue que vous avez posté sur ce topic, il n'y a pas ce champ: il n'apparait donc pas dans votre formulaire: ni en champ visilble ni en champ caché (d'apres ce que vous avez posté)
    Donc c'est normal: si il n'est pas envoyé dans le formulaire qu'il soit mis à null
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  11. #11
    Membre habitué
    Homme Profil pro
    Assistant statisticien
    Inscrit en
    Juillet 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Assistant statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2009
    Messages : 132
    Points : 168
    Points
    168
    Par défaut Explication
    Dans le main de mon module "saisir" , voilà ma methode new :
    public function _new(){
    $tMessage=$this->processSave();

    $oSaisir=new row_saisir;

    $oView=new _view('saisir::new');
    $oView->oSaisir=$oSaisir;



    $oPluginXsrf=new plugin_xsrf();
    $oView->token=$oPluginXsrf->getToken();
    $oView->tMessage=$tMessage;

    $this->oLayout->add('main',$oView);
    }

    et voici le process save et il y a bien le champ user_id qui est la clef étrangère de la ma table "users" :
    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);
    $iUser_id= _root::getAuth()->getAccount()->id;

    if($iId==null){
    $oSaisir=new row_saisir;
    }else{
    $oSaisir=model_saisir::getInstance()->findById( _root::getParam('id',null) );
    }

    $tColumn=array('user_id','saisir_date','saisir_absence','dysf_panne_info','observations','prn_aas','prn_pas','prn_personnel','prn_rejet','prn_signalement','recla_medialog','recla_eptica','recla_bal','recla_diad','recla_ass','courrier_ave','courrier_sanction50','courrier_sanction100','courrier_retour','autres_pj_diad','autres_lm2a','autres_destin','autres_ij_amexa','autres_indus','autres_rejet_diad','autres_solde_papier','dsij_auto','dsij_manuel','kdc_paiement','kdc_rejets','pe_non_subro_mal','pe_non_subro_mat_pat','pe_non_subro_pamc','pe_subro_mal','pe_subro_mat_pat','pe_subro_ij_personnel','echeancier_ok','echeancier_rejet','echeancier_relance');
    foreach($tColumn as $sColumn){
    $oSaisir->$sColumn=_root::getParam($sColumn,null) ;
    }


    if($oSaisir->save()){
    //une fois enregistre on redirige (vers la page liste)
    _root::redirect('saisir::list');
    }else{
    return $oSaisir->getListError();
    }

    }

    dans la vue new j'ai mis ce code entre bien sur les balises form (j'ai corrigé mon erreur avec l'imbrication des deux formulaires maintenant je n'en ai plus qu'un)
    <div class="form-group">
    <?php echo $oForm->getInputHidden('user_id') ?>
    </div>


    lorsque je valide une nouvelle saisie avec saisir::new, user_id est égale à 0.

  12. #12
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Il n'y avait pas ce code dans votre post initial
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div class="form-group">
    <?php echo $oForm->getInputHidden('user_id') ?>
    </div>
    Dans votre page new, vous avez donc un champ caché contenant user_id, mais il n'est donc pas initialisé, vous voulez enregistré si je comprend bien l'id du user connecté
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $iUser_id= _root::getAuth()->getAccount()->id;
    C'est bien ça ?

    dans ce cas deux choses:
    Soit, dans votre action _new vous le renseignez sur l'objet
    Code php : 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
     
    public function _new(){
    $tMessage=$this->processSave();
     
    $oSaisir=new row_saisir;
     
    $oView=new _view('saisir::new');
     
    $oSaisir->user_id= _root::getAuth()->getAccount()->id;
    $oView->oSaisir=$oSaisir;
     
     
     
    $oPluginXsrf=new plugin_xsrf();
    $oView->token=$oPluginXsrf->getToken();
    $oView->tMessage=$tMessage;
     
    $this->oLayout->add('main',$oView);
    }

    OU, il faudrait modifier processSave pour prendre en compte ce champ la
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  13. #13
    Membre habitué
    Homme Profil pro
    Assistant statisticien
    Inscrit en
    Juillet 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Assistant statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2009
    Messages : 132
    Points : 168
    Points
    168
    Par défaut Merci beaucoup
    Je te remercie pour tes précieux conseils.

    Ton framework est le premier framework que j'utilise.
    Je suis conquis par sa simplicité, ses fonctionnalités et sa conception.

    Je devrais suivre une formation de chef de projet multimédia-développement d'ici novembre 2016 (je l'espère).

    J'aimerais participer à l'avenir à la vie et à l'amélioration de ce framework.
    Ce sera formateur pour moi.

    J'espère que tu trouves l'idée réalisable.

    merci encore.
    Et à bientot.

  14. #14
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Merci de ce retour enthousiaste

    Vous pouvez déjà participer au framework, notamment via le biais du market

    Je devrais ecrire prochainement de nouveaux articles sur cette partie collaborative du framework
    Les tutos actuels sur le sujet:
    http://mkframework.com/tutoriaux.html (partie "Market")


    Actuellement je suis plus sur la partie test unitaires: j'écris des tutos pour les mettre en place facilement sur un projet mk existant
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. j'arrive pas à insérit tous mes donnée dans ma base
    Par thecharmer dans le forum Général Java
    Réponses: 1
    Dernier message: 24/04/2008, 18h03
  2. Réponses: 1
    Dernier message: 06/06/2007, 23h14
  3. Enregistrement d'une donnée dans une Zone de Text
    Par faressam dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 01/05/2007, 18h58
  4. pas de donnée dans SOUS-ETAT : pas de print
    Par Ale74 dans le forum IHM
    Réponses: 5
    Dernier message: 27/10/2006, 10h02
  5. [MySQL] Afficher mes données dans un tableau HTML
    Par lassmust dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 02/03/2006, 11h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo