Page 1 sur 1

fonction get-javascepte

Posté : 29 mai 2007, 13:17
par jkb
bonjour,
Je suis étudiant j'ai un projet en php5 suivant un dossier de conception.
Je suis bloqué sur la création d'une fonction dont la description est la suivante:

Static Public get_ javascript_for_selectList()

Cette méthode retourne une chaîne de caractères contenant les fonctions javascript gérant le rechargement dynamique des listes déroulantes de domaines, sous-domaines, thèmes et sous-thème.

Après avoir appelé la méthode loadListes qui initialise les différents tableaux décrivant les listes déroulantes, cette méthode génère le code javascript nécessaire à la gestion des listes déroulantes dynamiques contenu dans la fonction update_listes_domaine(nom_form, nom_) : nom_form est le nom du formulaire (par défaut il est défini dans la classe Table wizard), nom_element est le nom de la liste déroulante (contient soit : domaine, sousdomaine, theme ou soustheme)

Le contenu est généré en 3 temps :

 tout d’abord récupération de la nouvelle valeur de la liste déroulante modifiée,

var id_domaine = document.forms[nom_form].elements[prefixe+nom_element].value;

 puis définition des tableaux javascript décrivant les listes déroulantes : initialisation des tableaux javascript, puis remplissage de chacun avec les valeurs des tableaux domaines, sousdomaines, themes et sousthemes initialisés avec la méthode loadListes.

 enfin traitement de l’action nécessitant le rechargement d’une des listes déroulantes : test de la valeur de l’argument nom_element :
o si nom_element contient domaine, alors rechargement de la liste sous-domaine : suppression des éléments actuels de la liste, puis chargement des sous-domaines associé au domaine selectionné d’identifiant id_domaine.
o Si nom_element contient sousdomaine, rechargement de la liste déroulante theme en fonction de la nouvelle valeur du sous-domaine.
o Si nom_element contient theme, rechargement de la liste déroulante soustheme en fonction du thème sélectionné.
sachant que j'ai develloper les autre fonctions.
svp qulqu'un peyt 'il m'aidé merci
voici le code de la classe domaine:
<?php
/**
* Domaine.class.php
*/
require_once $conf['app']['class'].'HomeMade/Table.php';
/**
* Description...
*/


class Domaine extends Table
{
/*******************************attributs***************************************
 *                                                                             *
/******************************************************************************/
static private $domaines=array();
static private $sousdomaines=array();
static private $themes=array();
static private $sousthemes=array();

/*********************************Ses méthodes**********************************
 *                                                                             *
/******************************************************************************/


/*******************************loadListes**************************************
 *Initialise les tableaux domaines, sousdomaines, themes et sousthemes         *
 * destinés à remplir les listes déroulantes associées dans la langue courante *
 * de l’application.                                                           *
/******************************************************************************/
   Static public function loadListes()
      {
       //Récupération de la langue courante
         $lang=$_SESSION['lang'];
       //Récupération l'instance de l'accesseur aux données
         $db = Accesseur_DB::GetInstance();

       //Initialisation du tableau domaines
       if($lang==fr)
           self::$domaines[0]='Tous les domaines';
       if($lang==en)
          self::$domaines[0]='All domaines';
           $sqldomaine="SELECT domaine,libelle" ;
           $sqldomaine.=$lang ;
           $sqldomaine.=" FROM domaine WHERE sousdomaine=0 ORDER BY libelle";
           $sqldomaine.=$lang;
      	   $sqldomaine.=";";
           $result = $db->query_db($sqldomaine);
          while ($row=$result->fetchRow(DB_FETCHMODE_ASSOC))
	        {
              self::$domaines[$raw['domaine']]=$row['libelle'.$lang];
            }



       //Initialisation du tableau sousdoamine
          $sqlsousdomaine="SELECT domaine,sousdomaine,libelle" ;
          $sqlsousdomaine.=$lang ;
          $sqlsousdomaine.=" FROM domaine WHERE sousdomaine!=0 AND theme=0 ORDER BY libelle";
          $sqlsousdomaine.=$lang;
      	  $sqlsousdomaine.=";";
          $result = $db->query_db($sqlsousdomaine);
           while ($row=$result->fetchRow(DB_FETCHMODE_ASSOC))
	        {
             self::$sousdomaines[$raw['domaine']['sousdomaine']]=$row['libelle'.$lang];
            }

       //Initialisation du tableau themes
           $sqlthemes="SELECT sousdomaine,theme,libelle" ;
           $sqlthemes.=$lang ;
           $sqlthemes.=" FROM domaine WHERE theme!=0 AND soustheme=0 ORDER BY libelle";
           $sqlthemes.=$lang;
      	   $sqlthemes.=";";
           $result = $db->query_db($sqlthemes);

          while ($row=$result->fetchRow(DB_FETCHMODE_ASSOC))
	        {
             self::$themes[$raw['sousdomaine']['theme']]=$row['libelle'.$lang];
            }

         //Initialisation du tableau sousthemes
           $sqlsoustheme="SELECT theme,soustheme,libelle" ;
           $sqlsoustheme.=$lang ;
           $sqlsoustheme.=" FROM domaine WHERE soustheme!=0 ORDER BY libelle";
           $sqlsoustheme.=$lang;
      	   $sqlsoustheme.=";";
           $result = $db->query_db($sqlsoustheme);

          while ($row=$result->fetchRow(DB_FETCHMODE_ASSOC))
	        {
              self::$sousthemes[$raw['theme']['soustheme']]=$row['libelle'.$lang];
             
           }
      }
/*****************************get_ javascript_for_selectList()*****************
 * Cette méthode retourne une chaîne de caractères contenant les fonctions
 * javascript gérant le rechargement dynamique des listes déroulantes
 * de domaines,  sous-domaines, thèmes et sous-thème
 ******************************************************************************/
 Static Public function get_javascript_for_selectList()
     {
      self::loadListes();

    }
/*********************************get_domaines($id)****************************
 *                                                                            *
 ******************************************************************************/

     Static Public function get_domaines()
    {
      self::loadListes();
      return $domaines;

    }

/*****************************get_sousdomaines($id = 0)*************************
   * Retourne le tableau du tableau sousdomaines listant les sous domaines
   * associé au domaine dont l’identifiant est le paramètre transmit à la méthode.
*******************************************************************************/
    Static Public function get_sousdomaines($id = 0)
    {
        $lang=$_SESSION['lang'];
       //Récupération l'instance de l'accesseur aux données
       $db = Accesseur_DB::GetInstance();
       if($id=0){
                  if($lang==fr)
                    {
                      self::$sousdomaines[0]='Tous les sous-domaines';
                    }
                  else
                   {
                    self::$sousdomaines[0]='All sub-domaines ';
                   }
                }
       else    {
                  $sqlsousdomaine="SELECT domaine,sousdomaine,libelle" ;
                  $sqlsousdomaine.=$lang ;
                  $sqlsousdomaine.=" FROM domaine WHERE domaine=$id ORDER BY libelle";
                  $sqlsousdomaine.=$lang;
      	          $sqlsousdomaine.=";";
                  $result = $db->query_db($sqlsousdomaine);
              while ($row=$result->fetchRow(DB_FETCHMODE_ASSOC))
	            {
                  self::$sousdomaines[$raw['domaine']['sousdomaine']]=$row['libelle'.$lang];
                 }
               }
       return  $sousdomaines;
    }
/***********************************get_themes**********************************
 * Retourne un tableau listant les thèmes associé au sous domaine dont         *
 * l’identifiant est le paramètre transmit à la méthode.                       *                                                    *
 ******************************************************************************/
  Static Public function get_themes($id = 0)
    {
       $lang=$_SESSION['lang'];
       //Récupération l'instance de l'accesseur aux données
       $db = Accesseur_DB::GetInstance();
       if($id=0){
                  if($lang==fr)
                    {
                      self::$themes[0]='Tous les themes';
                    }
                  else
                   {
                    self::$themes[0]='All themes ';
                   }
                }
       else{
           $sqlthemes="SELECT sousdomaine,theme,libelle" ;
           $sqlthemes.=$lang;
           $sqlthemes.=" FROM domaine WHERE sousdomaine $id ORDER BY libelle";
           $sqlthemes.=$lang;
      	   $sqlthemes.=";";
           $result = $db->query_db($sqlthemes);

          while ($row=$result->fetchRow(DB_FETCHMODE_ASSOC))
	        {
             self::$themes[$raw['sousdomaine']['theme']]=$row['libelle'.$lang];
            }

           }
    return $themes;

    }
 /**********************************get _sousthemes*****************************
 *Retourne un tableau listant les sous thèmes associé au thème dont            *
 *l’identifiant est le paramètre transmit à la méthode.                        *                                                    *
 ******************************************************************************/
  Static Public function get_sousthemes($id = 0)
    {
      $lang=$_SESSION['lang'];
       //Récupération l'instance de l'accesseur aux données
       $db = Accesseur_DB::GetInstance();
       if($id=0){
                  if($lang==fr)
                    {
                      self::$themes[0]='Tous les sous-themes';
                    }
                  else
                   {
                    self::$themes[0]='All sub-themes ';
                   }
                }
       else{
             $sqlsoustheme="SELECT theme,soustheme,libelle" ;
             $sqlsoustheme.=$lang ;
             $sqlsoustheme.=" FROM domaine WHERE theme=$id ORDER BY libelle";
             $sqlsoustheme.=$lang;
      	     $sqlsoustheme.=";";
             $result = $db->query_db($sqlsoustheme);

            while ($row=$result->fetchRow(DB_FETCHMODE_ASSOC))
	         {
              self::$sousthemes[$raw['theme']['soustheme']]=$row['libelle'.$lang];
             }
           }
       return $sousthemes ;
    }
/**********************************get_domaine_liste****************************
 * le tableau décrivant la liste déroulante à afficher. Id représente          *
 * l’identifiant de l’élément parent associé à la liste                        *
 * (domaine, sous domaine ou thème), niveau indique si la liste a afficher est *
 * celle des domaines, sous domaines, thèmes ou sous thèmes.                   *                                *
 ******************************************************************************/
  Static Public function get_domaine_liste($id,$niveau)
    {
      switch($niveau)
      {
        case'domaines':
         return $this->get_domaines();
        break;

        case'sous-doamines':
        return $this->get_sousdomaines($id);
        break;

        case'themes':
        return $this->get_themes($id);
        break;

        case 'sous-themes':
        return $this->get_sousthemes($id);
        break;

      }

    }
/********************************constructeur***********************************
 * •Appel du constructeur parent ;                                             *
 * •Initialisation des fonctionnalités en fonction des droits utilisateurs     *
 *   (seuls les administrateurs accèdent aux fonctionnalités d’ajout,          *
 *     modification et suppression d’un domaine).                              *
 * •Appel de la méthode init_domaine.                                          *
 *******************************************************************************/

	public function __construct($table = 'domaine')
    {
      parent::__construct($table);
       global $page;
       if($page->get_userRole() < 3)
       {
	    $this->edition = true;
	    $this->ajout = true;
       }
       $this->init_domaine();

       }

	 private function init_domaine()
	   {
	    $this->intitule_table='domaine';
        $this->action					= 'index.php?section=admin&action=domaines';
		$this->params                   =array('action'=>'domaines','section'=>'admin');
        $this->libelles['contenu']      ='doamine';
	    $this->defaultParams['order']	= 'domaine,sousdomaine,theme,soustheme';
		/***********************************************************************
		*      description de la table                                         *
		*      liste des champs pour les formulaires d'ajout / modification    *
		*      et des colonnes de l'affichage liste                            *
		************************************************************************/
       /*  */
	    $this->add_field('libellefr','Libellé français','text','maxlength=255 size=70',false);
		$this->add_field('libelleen','Libellé anglais','text','maxlength=255 size=70',false);
        $this->add_fk_field('domaine','Domaine','id','domaine','libellefr',true) ;
       $this->add_fk_field('sousdomaine','Ss-domaine','id','domaine','libellefr',true) ;
       $this->add_fk_field('theme','Thème','id','domaine','libellefr',true) ;
       $this->add_fk_field('southeme','Ss-thème','id','domaine','libellefr',true) ;

      }

Posté : 29 mai 2007, 13:30
par titerm
Tu as oublié de poser ta question...

get_java_scripte

Posté : 29 mai 2007, 13:40
par jkb
merci
j'ai d'idé sur la fasson de dévelloper cette fonction get-java_scripte
merci

Posté : 29 mai 2007, 15:01
par Klomac
*silence*

:?:

Posté : 29 mai 2007, 16:47
par jkb
waw quelle répance?? vraiment je s'avait pas que la cominoté php est si genti que cela.
????

Posté : 29 mai 2007, 17:04
par Klomac
Allez cadeau...

Image

Posté : 29 mai 2007, 17:40
par jkb
waw tu é tré intéligent.
mais tu c pas que je sui pa francais.. é que ca fai que 9 mois que j'aparnt cette langue.
donc c pas gentille de t'apar

Posté : 29 mai 2007, 17:56
par Klomac
Si tu as des difficultés en français, tu as deux solutions :
  • tu fais des efforts de rédaction, tu te relis, tu cherches dans un dictionnaire l'orthographe des mots que tu ne connais pas
  • ou alors tu t'orientes vers un forum dans ta langue maternelle
Le problème n'est pas de savoir si tu maitrise parfaitement la langue, tout le monde fait des fautes, certains plus que d'autres, mais ton message doit au moins être lisible facilement. C'est à toi de faire des efforts de rédaction, pas à nous de déchiffrer...
donc c pas gentille de t'apar
Ca n'a rien de personnel, juste que je ne me permettrais pas d'aller poster un message illisible sur un forum allemand ou italien ou autre et réclamer qu'on me tolère car "j'apprends la langue depuis x mois".

Posté : 29 mai 2007, 18:34
par jkb
wiiiiiiiiiiiiiiiiiii je voi .
mais je croi que j'ai poster un méssage concernant du php et non pas du francai!!
ban désolé
déykota mali.

Posté : 29 mai 2007, 18:59
par Cyrano
Modération :
jkb, nous sommes dans un forum francophone.
Tu as devant toi un clavier complet et tu disposes de la place que tu désires pour écrire.
Merci de rédiger tes messages dans un français intelligible pour tous.
Ce sera bénéfique pour ta demande d'aide.

Merci de prendre le temps de lire les règlements.