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 :

[1.0.12]Listes liées avec Javascript


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut [1.0.12]Listes liées avec Javascript
    Bonjour,

    Je suis en train de développer un composant. J'ai les fichiers suivants : contrats.php et contrats.html.php. Vous vous doutez que c'est pour la gestion de contrats.

    Dans une fonction "creer" (dans contrats.php) je récupère la liste des catégories de produits
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "select id_cat, nom_cat from #__win_categorie;"
    et la liste des produits
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "select id_prod, id_cat, titre_prod from #__win_produit;"
    pour les transmettre à la fonction "creer" du fichier contrats.html.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HTML_contrats::creer($pays, $categories, $produits );
    où je voudrais proposer la liste des catégories dans une Listbox et en fonction du choix de la catégorie par l'utilisateur, afficher la liste des produits correspondants dans une deuxième Listbox.

    Le code de la fonction "creer" du fichier contrats.html.php se présente comme suit :
    Au début, j'ai mis un script Javascript...
    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
     
    function creer ($pays, $categories, $produits ){
            global $database;
            ?>  
                  <script>
                       var liste=new Array()
                       liste[0]="<select name='list_produits'><OPTION VALUE=0>---</OPTION></select>";
                       <% liste.movefirst
                              while not liste.eof
                                   temp="<select name='list_produits'>"
                              <?php                                         
                              $id_cat1 = "<script language='Javascript'> document.write(&liste(\"id_cat\")); </script>";
                              $query_produits = "select * from #__win_produit where id_cat=".$id_cat1;
                              $database->setQuery($query_produits);
                              $produits = $database->loadObjectList();
                             ?>
                             set produit=<?php echo $produits ;?>;             
                             while not produit.eof
                                        temp=temp&"<OPTION VALUE="&produit("id_prod")&">"&produit("titre_prod")&"</option>"
                                        produit.movenext
                             wend
                             temp= temp&"</select>"%>
                             liste[<%=liste("id_cat")%>]="<%=temp%>";
                                    <%
                                    liste.movenext
                                    wend
                                    %>
     
                   function changeliste() {
                                        choix=document.monform.list_categories.value;
                                        document.monform.list_produits.outerHTML=liste[choix];
                                    }
     
                            </script>
    La liste des catégories :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <select id="listcat" name="list_categories" size="1"  onChange='changeliste()'>
                            <option value="">Sélection de la catégorie</option>  
                                <option value="">-----------------------------</option>
                              <?php
                                $count = count($categories);
                                  for($i = 0; $i< $count ; $i++){
                                      ?><option value="<?php echo $categories[$i]->id_cat;?>"><?php echo $categories[$i]->nom_cat; ?></option><?php
                                  }
                              ?>
                              </select>
    Pour la liste des produits, j'ai un autre SELECT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <select id="listprod" name="list_produits" size="1">
                                <option value="">Sélection du produit</option>
                                <option value="">-----------------------------</option>
                              </select>
    Le problème est que ca ne marche pas, vous vous en doutiez

    Auriez-vous une idée pour que ca marche ?

    Merci.
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 116
    Points : 120
    Points
    120
    Par défaut
    Je n'ai pas pris le temps de lire tout ton message. Mais vu le topic je dis AJAX

  3. #3
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut
    En fait, ce que j'ai mis devrait marcher. Dans les exemples que j'ai vu, le script doit etre mis entre les balises <head> et comme sur joomla (dans un composant), c'est impossible, je crois que c'est de là que viens l'erreur... et même en AJAX c'est pareil... le script doit etre mis entre les <head>.

    Citation Envoyé par openWorld
    Je n'ai pas pris le temps de lire tout ton message. Mais vu le topic je dis AJAX
    Effectivement, je suis en train de chercher un tuto. Merci
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  4. #4
    Membre averti
    Avatar de opware2000
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 243
    Points : 382
    Points
    382
    Par défaut
    tu peux mettre quelque chose en entete sous Joomla, il n'y a pas de problème.
    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if( !function_exists( 'bot_EXG_addHeaders' ) ){
     function bot_EXG_addHeaders( &$html )
     {
     global $mainframe;
        if( !strpos( $mainframe->getHead(), $html ) )
               $mainframe->addCustomHeadTag( $html );
        }
      }
    C'est un fragment d'un de mes plugin.

  5. #5
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut
    Je dois l'ajouter dans la fonction creer du fichier contrats.html.php ?
    et ou dois-je integrer le script ? juste apres ton code ?

    Merci beaucoup.
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  6. #6
    Membre averti
    Avatar de opware2000
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 243
    Points : 382
    Points
    382
    Par défaut
    il faut le mettre dans le fichier où tu codes tes fonctions (contrat.php pour toi)
    ce qui est important c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     global $mainframe;
        if( !strpos( $mainframe->getHead(), $html ) )
               $mainframe->addCustomHeadTag( $html );
    on vérifie d'abords que ce qu'on veut passer n'est pas déjà présent, et apres on insere le code via addcustomheadtag.
    tu peux donc le mettre où tu veux.

    Par contre c'est ce que j'utilise en mambot.

    je viens de voir ce tuto sur le site de joomla.org
    http://dev.joomla.org/component/opti...:hello_world5/
    c'est un peu axé sur la 1.5 mais regarde si ca marche sous 1.0.x

Discussions similaires

  1. [MySQL] 3 listes liées avec PHP/MYSQL
    Par sadigoun dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 22/10/2008, 12h41
  2. Rendre une liste visible avec Javascript
    Par will89 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 14/08/2008, 16h44
  3. Listes liées avec rechargement spécifique
    Par jpascal dans le forum Langage
    Réponses: 2
    Dernier message: 05/04/2008, 02h32
  4. [PHP-JS] Listes liées par JavaScript
    Par manplum dans le forum Langage
    Réponses: 3
    Dernier message: 16/02/2008, 15h27
  5. [AJAX] Listes liées avec Ajax
    Par Zak_92 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 15/08/2007, 12h19

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