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

CodeIgniter PHP Discussion :

Liste liées


Sujet :

CodeIgniter PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Liste liées
    Salut à tous ! (et désolé d'avance si je ne suis pas au bon endroit )

    Mon problème est le suivant:

    Je souhaiterais avoir une liste déroulante remplie avec une table de ma base de donnée. Ça pas de soucis ça marche.
    Ensuite je souhaiterais une deuxième liste déroulante, toujours remplie avec ma base de donnée, mais qui change en fonction du choix de ma première liste déroulante. Là plus compliqué, j'arrive à charger les données dans ma liste mais peu importe le choix dans ma première liste j'ai toujours TOUTES les données dans la deuxième

    Débutant avec codeigniter et ne m'y connaissant qu'en php, html, css et un peu de js je suis bloqué car ma solution actuelle, bien que simple, ne fonctionne pas, et les autres solutions trouvées sur le net nécessitent plus de connaissances ><

    Voici le code: (dans le body):
    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
    <body>     
        <form name="sanctions" method="post" action="<?php echo base_url("sanctions/verifprem");?>">
            <p>Nature de la décision:
                <select name='nature'>
                    <option>Sanction</option>
                    <option>Punition</option>
                    <option>(Distinction)</option>
                </select>
            </p>
            <p>Classe:
                <select id="classe">
                    <option value="" selected>--</option>
                        <?php
                        foreach($classe as $valeur)
                        {
                            echo("\n");
                            echo('<option value="'.$valeur['id_classe'].'">'. ($valeur['section']).'</option>');
                        }
                        ?>
                </select>
            </p>
            <p>Elève concerné:
                <select id="eleve">
                    <option value="" selected>--</option>
                        <?php
                        foreach($eleve as $valeur)
                        {
                            echo("\n");
                            echo('<option value="'.$valeur['id_personnel'].'" class="'.$valeur['id_classe'].'">'. ($valeur['nom']).' '.($valeur['prenom']).'</option>');
                        }
                        ?>
                </select>
            </p>        
        </form>
    </body>
    (dans le head):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        <script type="text/javascript" charset="utf-8">
        $(function(){
        $("#eleve").chainedTo("#classe");
        });
        </script>
    Voila, si vous pouviez me dire où je me suis planté ou me conseiller une autre soluce ce serait sympa :3 D'avance merci à vous o/

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 96
    Points : 140
    Points
    140
    Par défaut
    Ce n'est pas un probleme php, ni codeigniter, cest purement JS/HTML

    Si tu es en train d'apprendre pour t'ameliorer, des plugin Jquery come chainedTo font tellement de choses a ta place, ce qui peut nuire si tu vx apprendre...

    Par contre si tu veux juste que ca marche et que tu te fou un peu comment bien cest parfait et je juge aucun des 2 solutions.

    bon...

    1) Es-tu sur que tu charge bien jquery et le plugin chained to dans ta page. Vois-tu des 404 pour des 2 fichier js dans firebug

    essaie ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="jquery.chained.remote.min.js"></script>
    si ca marche remplace ceux que tu as en local. Cest peut-etre la version de jquery que tu as qui cause probleme avec le plugin que tu utilise

    2) Enleve ton selected dans les 2 premier tag options on ne sais jamais

    3) Si ca ne marche pas, donne nous le rendu HTML dans view source de tout ca.

    4) va faire une tour sur la demo officiel de chainedTo de Mika Tuupola

    Hésite pas!

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    J'étais en train de taper un loooooooooong message en expliquant que rien ne fonctionnait malgrès ton aide et au moment de t'envoyer le rendu HTML je me suis aperçu d'une erreur, une des mes variables dans le 2ème select était "undefined" ^^ le temps de règler ce problème et hop ! tout fonctionne niquel \o/ Un grand merci à toi

    Pour résumer j'ai:
    -télécharger jquery.chained.min.js sur google, placé dans codeigniter et inclut dans mon <head>
    -copié collé dans un js dans codeigniter le jquery.min.js que tu m'as donné et inclut dans mon <head>
    -enlevé les balises Selected.

    Du coup le rendu HTML donne ça:
    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
    <!DOCTYPE html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <script type="text/javascript" src="http://localhost/VieScolaire/assets/js/jquery.min.js"></script>
        <script type="text/javascript" src="http://localhost/VieScolaire/assets/js/jquery.chained.min.js"></script>
        <script type="text/javascript" charset="utf-8">
        $(function(){
        $("#eleve").chainedTo("#classe");
        });
        </script>
        <h2>Sanctions</h2>
    </head>
     
    <body>     
        <form name="sanctions" method="post" action="http://localhost/VieScolaire/sanctions/verifprem">
            <p>Nature de la décision:
                <select name='nature'>
                    <option>Sanction</option>
                    <option>Punition</option>
                    <option>(Distinction)</option>
                </select>
            </p>
            <p>Classe:
                <select id="classe">
                    <option value="">--</option>
     
    <option value="1">2TSIRIS</option>
    <option value="2">3TSIRIS</option>
    <option value="3">1TSIRIS</option>            </select>
            </p>
            <p>Elève concerné:
                <select id="eleve">
                    <option value="">--</option>
     
    <option value="1" class="2">RAMON Lionel</option>
    <option value="2" class="3">Jean PHP</option>            </select>
            </p>        
        </form>
    </body>
    J'aurais juste une dernière question:
    Est ce que dans mon fichier auto load je dois rajouter Javascript à la ligne $autoload['libraries'] ou Javascript est géré "tout seul" par codeigniter ?

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 96
    Points : 140
    Points
    140
    Par défaut
    Codeigniter peut te permette de dynamiser la gestion des javascript assez simplement.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci bien ^^

    Je me permets de relancer ce sujet car j'ai un autre "soucis". Voila j'ai un tableau complété avec plein d'informations de ma BDD. Chaque ligne du tableau correspond un "rapport de sanction" où j'affiche les infos importantes (date, élève, motif,...) et à chaque fin de ligne un bouton "éditer". Le soucis est le suivant:

    -l'utilisateur clique sur le bouton submit "Editer";
    -le formulaire envoie l'id du rapport au contrôler;
    -mon contrôleur, grâce à l'id, appelle un modèle qui récupère toutes les infos du rapport en question;
    -le contrôleur récupère ces infos puis affiche un formulaire pré-remplit avec les infos du rapport en question.
    -J'arrive à pré-remplir les cases text, date et textearea mais pas mes listes liées x) (j'ai essayé l'attribut "selected=" et "select=" mais pas moyen ><

    Ma question est donc: peut on pré-remplir des listes avec des données qui viennent d'une base de donnée ?

    Rappel de mes listes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <p>Classe:</br>
             (<?php echo $sanction[0]['Section'] ?>)</br>
                <?php echo form_error('classe'); ?>
                <select name="classe" id="classe">
                    <option value="">--</option>
                        <?php
                        foreach($classe as $valeur)
                        {
                            echo("\n");
                            echo('<option value="'.$valeur['id_classe'].'">'. ($valeur['section']).'</option>');
                        }
                        ?>
                </select>
    </p>
    La ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (<?php echo $sanction[0]['Section'] ?>)</br>
    est ma solution provisoire: je rappel le choix précédemment fait. D'avance merci o/

Discussions similaires

  1. Pb listes liées javascript/php
    Par boo64 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 06/06/2006, 12h35
  2. Deux listes lies et un lien
    Par arti2004 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/03/2006, 16h44
  3. [MySQL] 1 table et 2 listes liées
    Par Ekik dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 07/02/2006, 16h47
  4. XMLHTTPRequest et listes liées
    Par ben23 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 31/12/2005, 16h32
  5. Problème avec listes liées entre elles et bouton "précé
    Par Oluha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/08/2005, 15h10

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