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 :

Comment utiliser une methode d'un modele dans la vue d'un autre modèle.


Sujet :

MkFramework

  1. #1
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut Comment utiliser une methode d'un modele dans la vue d'un autre modèle.
    Bonjour a tous
    je ne sais pas si ma question est compréhensible mais Voila
    j'ai dans ma couche modele :
    model_T_FILIERE
    model_T_NOTES


    Au niveau de ma couche modèle model_T_FILIERE j'ai une méthode getSelect() qui me permet
    de récupérer la liste de filières.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public function getSelect(){
    		$tab=$this->findAll();
    		$tSelect=array();
    		if ($tab){
    			foreach($tab as $oRow){
    			$tSelect[$oRow->NUM_FILIERE]=$oRow->LIB_FILIERE;
    			}
    		}
    			return $tSelect;
    		}

    Suivi de la page dans mon module T_FILIERE

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public function _macombo(){
    		$tT_FILIERE=model_T_FILIERE::getInstance()->getSelect();
    		$oView=new _view('T_FILIERE::macombo');
    		$oView->tT_FILIERE=$tT_FILIERE;
    		$this->oLayout->add('main',$oView);
    	}
    avec le code de la vue en question :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $oForm=new plugin_form();
    ?>
    <h1>REMPLIR LISTE</h1
     
    <form action=" " method="POST">
            <label>Choississez la Fili&egravere : </label><SELECT name="monecole" size="1">
            <OPTION value="<?php echo $oForm->getSelect('NUM_FILIERE',$this->tT_FILIERE);?>"</OPTION>
            </SELECT>
     </form>

    Maintenant j'ai une vue au niveau du module T_NOTES Dans laquelle je voulais avoir une combo avec la liste
    des filières.

    Comment je pourrai faire appel à la fonction getSelect() de model_T_FILIERE pour récupérer la liste des filières
    au niveau d'une vue du module T_NOTES ?

    En effet j'ai tenté ce code qui ne me semble pas logique dans une vue du module T_NOTES comme ceci :

    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
    <?php
    $oForm=new plugin_form();
    ?>
    <h1>RECHERCHE DES MOYENNES </h1> 
    <br></br>
    <form action=" " method="POST">
            <label>Entrer le Nom Complet : </label><input type="text" name="lenomcomplet"/><br></br>
            <label>Entrer l'Ann&eacutee Acad&eacutemique : </label><input type="text" name="lannee"/><br></br> 
            <label>Choississez la Fili&egravere : </label>
            <SELECT name="monecole" size="1">
            <OPTION value="<?php echo $oForm->getSelect('NUM_FILIERE',$this->tT_FILIERE);?>"</OPTION>
            </SELECT>
            <input type="submit" value="rechercher"/>
    </form>

    message d'erreur
    Variable tT_FILIERE inexistante dans le template T_NOTES::frechercheMoyenne
    ce qui est bien normal.

    Merci a tous

  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: ce code n'est pas correct:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $oForm=new plugin_form();
    ?>
    <h1>REMPLIR LISTE</h1
     
    <form action=" " method="POST">
            <label>Choississez la Fili&egravere : </label><SELECT name="monecole" size="1">
            <OPTION value="<?php echo $oForm->getSelect('NUM_FILIERE',$this->tT_FILIERE);?>"</OPTION>
            </SELECT>
     </form>
    La méthode getSelect de $oForm retourne directement un objet html select
    Il faut faire ainsi:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    $oForm=new plugin_form();
    ?>
    <h1>REMPLIR LISTE</h1
     
    <form action=" " method="POST">
            <label>Choississez la Fili&egravere : </label>
     
            <?php echo $oForm->getSelect('monecole',$this->tT_FILIERE);?>
     
     </form>
    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
    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
    Vous pouvez également, si cela vous semble plus clair, ne pas utiliser le plugin form ainsi:

    Dans votre module, on change rien:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public function _macombo(){
    		$tT_FILIERE=model_T_FILIERE::getInstance()->getSelect();
    		$oView=new _view('T_FILIERE::macombo');
    		$oView->tT_FILIERE=$tT_FILIERE;
    		$this->oLayout->add('main',$oView);
    	}
    Mais dans la vue, on ferait:
    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
     
    <?php
    $oForm=new plugin_form();
    ?>
    <h1>REMPLIR LISTE</h1>
     
    <form action=" " method="POST">
    	<label>Choississez la Fili&egravere : </label>
    	<SELECT name="monecole" size="1">
    	<?php foreach($this->tT_FILIERE as $cle => $valeur):?>
    		<OPTION value="<?php echo $cle?>"><?php echo $valeur?></OPTION>
    	<?php endforeach;?>
     
    	</SELECT>
     </form>
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  4. #4
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    Citation Envoyé par imikado Voir le message
    Attention:
    La méthode getSelect de $oForm retourne directement un objet html select
    Merci pour la correction de cette erreur de codage que je trainais depuis hier.
    j'ai aussi pigé les deux méthodes de remplissage de ma combo
    - Avec le plugin form
    -Sans le plugin form
    Au niveau de la vue macombo.php qui est lié au module T_FILIERE ça fonctionne.

    Mon problème demeure toujours reste en entier comment pourrai je remplir une combo avec la liste des filières dans une autre vue qui est arrimée au modèle T_NOTES ?

    j'ai essayer d'appeler ce code dans ma vue frechercheMoyenne du module T_NOTES
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <label>Choississez la Fili&egravere : </label>
    <?php echo $oForm->getSelect('monecole',$this->tT_FILIERE);?>
    au lancement :
    Message d'erreur
    Variable tT_FILIERE inexistante dans le template T_NOTES::frechercheMoyenne
    Définir une variable globale ?

    Merci de m'éclairer

  5. #5
    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
    C'est normal: dans la methode _combobox du module vous assignez à la vue cette variable

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public function _macombo(){
      //ici vous recuperez ce tableau de la couche modele
      $tT_FILIERE=model_T_FILIERE::getInstance()->getSelect();
     
      //initiation de la vue
      $oView=new _view('T_FILIERE::macombo');
     
      //puis
      //ici vous l'assignez ce tableau (pour le menu deroulant)
      $oView->tT_FILIERE=$tT_FILIERE;
     
    (..)
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  6. #6
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    j'ai un peu galéré mais je crois avoir trouver le bon bout. je soumet a votre approbation pour d'éventuelle conseil:
    le problème est que je voulais utiliser une combo qui ramenait la liste des filières au niveau du module des notes
    j’avais donc :
    model_T_FILIERE et model_T_NOTES

    Dans mon modèle model_T_NOTES
    une fonction qui me liste les filières
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public function findAllFiliere(){
    return $this->findMany('SELECT * FROM T_FILIERE');
    }
    Avec la méthode getSelect() utilisant la fonction ci dessus

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public function getSelect(){
    		$tab=$this->findAllFiliere();
    		$tSelect=array();
    		if ($tab){
    			foreach($tab as $oRow){
    			$tSelect[$oRow->NUM_FILIERE]=$oRow->LIB_FILIERE;//LIB_LONGFILIERE;//
    			}
    		}
    			return $tSelect;
    		}

    Ensuite ma page dans mon module T_NOTES
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public function _frechercheMoyenne(){
    	    $tT_FILIERE=model_T_NOTES::getInstance()->getSelect();
    		$oView=new _view('T_NOTES::frechercheMoyenne');
    		$oView->tT_FILIERE=$tT_FILIERE;
    		$this->oLayout->add('main',$oView);
    	}

    Et ma vue en question qui marche
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <SELECT name="monecole" size="1">
    	<?php foreach($this->tT_FILIERE as $cle => $valeur):?>
    		<OPTION value="<?php echo $cle?>"><?php echo $valeur?></OPTION>
    	<?php endforeach;?>
     
    	</SELECT>

    Ya encore des trucs a arranger ! mais j'attend vos corrections

    Merci

  7. #7
    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
    Ca a l'air correcte

    Juste pour info, il serait plus "propre" de mettre les méthodes concernant une meme table ensemble:
    Ici vous demander au model model_T_NOTES de retourner des filieres

    Laissez plutot cette méthode dans la classe model model_T_FILIERE
    Et appelez ainsi
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public function _frechercheMoyenne(){
    	    $tT_FILIERE=model_T_FILIERE::getInstance()->getSelect();
    		$oView=new _view('T_NOTES::frechercheMoyenne');
    		$oView->tT_FILIERE=$tT_FILIERE;
    		$this->oLayout->add('main',$oView);
    	}
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  8. #8
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    Merci beaucoup pour vos conseils.

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

Discussions similaires

  1. comment utiliser une valeur d'un champs dans un select ?
    Par cholopat dans le forum Requêtes
    Réponses: 10
    Dernier message: 20/06/2009, 08h15
  2. Réponses: 17
    Dernier message: 12/11/2008, 10h04
  3. Réponses: 6
    Dernier message: 23/04/2007, 11h41
  4. Réponses: 2
    Dernier message: 22/08/2006, 11h28
  5. Réponses: 2
    Dernier message: 02/05/2006, 14h34

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