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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[3.x] Listes déroulantes liées dans module


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre habitué
    Avatar de Mell
    Femme Profil pro
    Développeuse Front-end
    Inscrit en
    Janvier 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeuse Front-end
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2011
    Messages : 107
    Points : 143
    Points
    143
    Par défaut [3.x] Listes déroulantes liées dans module
    Bonjour,

    J'essai tant bien que mal de créer un module joomla 3.x.
    Jusque là tout va bien mon module est bien installé tout ça. Le problème c'est que j'essai de faire des listes déroulante liées avec ajax.
    Mais vu que dans un module joomla, le controller ce n'est pas une classe, je galère.
    Tout simplement, je n'arrive pas à remplir ma seconde zone de liste en ajax.. je ne peux pas faire un return directement à partir du controller, "Restriction access". Donc je sais pas trop comment faire :-/
    Le faire en php pur me dérange un peu alors je viens voir si vous auriez une idée.

    Voici mon HTML avec mes deux select
    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
     
    <div class="select-bien">
                    <div class="region">
                        <label>Région : </label>
                        <div class="style-select">
                            <select name="region" onchange="javascript:getDepartements( this.value, '<?php echo JUri::root(); ?>' );">
                                <option value="-1"></option>
                                <?php foreach( $regions as $r ): ?>
                                    <option value="<?php echo $r->num_region; ?>"><?php echo $r->nom; ?></option>
                                <?php endforeach; ?>
                            </select>
                        </div>
                    </div>
                </div>
                <div class="select-bien">
                    <div class="region">
                        <label>Département : </label>
                        <div class="style-select">
                            <select name="departement">
                                <option value="-1"></option>
                                <?php if ( isset( $departements ) ):
                                    foreach ( $departements as $d ): ?>
                                        <option value=""<?php echo $d->departement_id; ?>><?php echo $d->departement_nom; ?></option>
                                    <?php endforeach;
                                endif; ?>
                            </select>
                        </div>
                    </div>
                </div>
    Ma fonction javascript avec mon ajax.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function getDepartements( arg, root )
    {
        var url = root + 'modules/mod_phenix_recherche/mod_phenix_recherche.php';
        $.post(url, {id_region: arg}, function(  ){
     
        });
    }
    le controller de mon module
    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
     
    // no direct access
    //defined( '_JEXEC' ) or die( 'Restricted access' );
     
    jimport('joomla.application.component.view');
     
    $doc = JFactory::getDocument();
    $doc->addScript('modules/mod_phenix_recherche/js/jquery-1.10.2.min.js', 'text/javascript');
    $doc->addScript('modules/mod_phenix_recherche/js/jquery-ui.js', 'text/javascript');
    $doc->addScript('modules/mod_phenix_recherche/js/scripts.js', 'text/javascript');
    $doc->addStyleSheet('modules/mod_phenix_recherche/css/recherche.css');
     
    // no direct access
    defined( '_JEXEC' ) or die( 'Restricted access' );
    // Include the syndicate functions only once
    require_once( dirname(__FILE__).'/helper.php' );
     
    $regions = modPhenixRechercheHelper::getRegions( );
    if ( JRequest::getVar('id_region') != "" )
    {
        $departements = modPhenixRechercheHelper::getDepartements( JRequest::getVar('id_region') );
    }
    require( JModuleHelper::getLayoutPath( 'mod_phenix_recherche' ) );
     
    ?>
    Mon helper
    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
     
    class modPhenixRechercheHelper
    {
        /**
         * Retrieves the hello message
         *
         * @param array $params An object containing the module parameters
         * @access public
         */    
        public static function getRegions( )
        {
            //Obtain a database connection
            $db = JFactory::getDbo();
            //Retrieve the shout
            $query = $db->getQuery(true)
                        ->select($db->quoteName(array('num_region', 'nom')))
                        ->from('web_regions')
                        ->order('nom', 'ASC');
            //Prepare the query
            $db->setQuery($query);
            // Load the row.
            $result = $db->loadObjectList();
            //Return the Hello
            return $result;
        }
     
        public static function getDepartements( $id_region )
        {
            //Obtain a database connection
            $db = JFactory::getDbo();
            //Retrieve the shout
            $query = $db->getQuery(true)
                        ->select($db->quoteName(array('departement_id', 'departement_nom')))
                        ->from('web_departements')
                        ->where('region_id = ' . $id_region);
            //Prepare the query
            $db->setQuery($query);
            // Load the row.
            $result = $db->loadObjectList();
            //Return the Hello
            return $result;
        }
    }
    Merci d'avance,
    Mell

  2. #2
    Inactif
    Homme Profil pro
    Sans emploi
    Inscrit en
    Septembre 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Sans emploi

    Informations forums :
    Inscription : Septembre 2014
    Messages : 35
    Points : 52
    Points
    52
    Par défaut
    C'est au niveaux du fichier xml tu prend une variable depuis

    xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <!--------Code ici------------>
    <field
    					name="variable_list"
    					type="list"
    					default="1"
    					label="label"
    					description="description">
    					<option
    						value="0">active</option>
    					<option
    						value="1">desactive</option>
    				</field>
    <!--------Code ici------------>
    php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $variable = $params->get('variable_list');

Discussions similaires

  1. Réponses: 15
    Dernier message: 21/01/2015, 10h14
  2. Problèmes de liste déroulante liée dans formulaire continu
    Par delgicoule dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 27/08/2013, 14h34
  3. [AC-2007] Actualiser liste déroulante liée dans sous-formulaire
    Par Elno11 dans le forum IHM
    Réponses: 5
    Dernier message: 24/12/2012, 14h42
  4. [MySQL] Couples identiques de listes déroulantes liées dans la même page
    Par roy-mustang dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/05/2009, 00h37
  5. Réponses: 8
    Dernier message: 03/08/2008, 14h59

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