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

JavaScript Discussion :

[AJAX] Menu déroulant dynamique pour parcourir une BD


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 11
    Par défaut [AJAX] Menu déroulant dynamique pour parcourir une BD
    Bonsoir,
    Je suis bloquée sur un problème qui concerne à la fois SGBD - Javascript et PHP d'où il m'était difficile de savoir où poster et j'espère que je suis au bon endroit.

    Ce que je cherche à faire c'est dans mon formulaire j'ai des menus déroulant (select) uniquement l'un d'entre eux se remplis quand la page se lance. C'est celui qui fait répond à un "show databases". Je souhaite si je clique sur une base que les tables qu'elle contiennent apparaissent dans le second SELECT. Et c'est la que je bloque ...

    Je sais que je doit utiliser un onchange mais je n'arrive pas à savoir comment, mes connaissances en javascript n'étant pas très fort. J'ai pensée à récupérer, avec le onchange, dans une variable la valeur sélectionnée (je ne parle pas de .value mais du .text qui correspondrai au nom de la base). Sauf que je ne parvient ni à trouver des exemples qui m'aide, ni à comprendre comment faire ...

    Merci d'avance pour votre aide ...
    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
    <?php
    /* connection a une base mysql en local */
    $connect = @mysql_connect("ma_base","login","") or die("erreur de connexion au serveur");
    
    /* les requete */
    $requete="SHOW DATABASES";
    $res=mysql_query($requete,$connect);
    
    echo "Databases :
            <select name=\"database\" id=\"database\" onchange= ?????\"><option></option>";
            
    /* recuperation des resultats */
    while($ligne=mysql_fetch_row($res)){
           echo "<option>$ligne[0]</option>" ;
    }
    echo "</select>";
    
    /* selection de la base de donnees mysql */
    mysql_select_db($base, $connect) or die("erreur de connexion a la base de donnees");
    
    /* la requete */
    $requete="SHOW TABLES";
    $res=mysql_query($requete,$connect);
    
    echo "Tables :
            <select name=\"table\" id=\"table\"><option></option>";
    
    /* recuperation des resultats */
    while($ligne=mysql_fetch_row($res)){
           echo "<option>$ligne[0]</option>" ;
    }
    echo "</select>";
    
    /* fermeture de la connection */
    mysql_close($connect);
    ?>

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Est-ce que tu veux mettre à jour la 2º liste sans recharger toute la page (AJAX) ou bien de manière classique (soumission du formulaire) ?


    Je te laisse un peu de lecture au passage : http://pbnaigeon.developpez.com/tuto...phe-guillemet/

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 11
    Par défaut
    Bonjour,
    Merci pour le lien ... pratique pour rendre le code plus lisible ...

    Pour mon histoire ... je suis désolée mais je débute et je comprend moyennement ce que tu veut dire, désolée
    Pour ma part, je veut qu'il modifie juste le contenu de la 2e liste qui au lancement de la page est vide, donc j'opte pour ne pas recharger toute la page.

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Ok, en ce cas jette un oeil aux post-its de ce forum --> Javascript & AJAX

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 11
    Par défaut
    J'y ai déjà regarder dans tout les sens

    J'ai testé une truc du genre :

    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
     
    function Choix(form) {
    	var indice_selectionne=form.database.selectedIndex;
    	var chango=form.database.options[indice_selectionne].value;
     
    	<?php
            /* selection de la base de donnees mysql */
            mysql_select_db("chango") or die("erreur de connexion a la base de donnees");
            /* la requete */
            $requete="show tables";
            /* recupere le resultat de la requete */
            $res=mysql_query($requete); 
            while($ligne=mysql_fetch_row($res)){
                 echo '<option value=$ligne[0]>$ligne[0]</option>';
            }
            ?>
    }
    Mais je me fais rejetter :
    <!-- function Choix(form) { var indice_selectionne=form.database.selectedIndex; var chango=form.database.options[indice_selectionne].value;
    Warning: mysql_select_db() [function.mysql-select-db]: Accès refusé pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) in D:\Mes travaux\ProjetBDR\bug2.php on line 16

    Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in D:\Mes travaux\ProjetBDR\bug2.php on line 16
    erreur de connexion a la base de donnees
    Je crois qu'il perd ma connections de départ ce qui est moyen car c'est ma première liste qui me permet de savoir qu'elle base choisir ....

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Hmmm non, en effet, ce n'est pas la bonne méthode. Tu ne devrais pas mettre de code PHP dans ton Javascript. Je pense que tu confonds la chronologie : PHP est exécuté côté serveur, tandis aue Javascript n'est utile que côté client. Donc : mettre du PHP dans un fichier Javascript oblige le client (le navigateur) à interpréter le PHP, ce qu'il ne sait pas faire (ce n'est pas son boulot).

    Je suis sûr qu'en lisant bien nos cours Ajax, tu comprendras le principe.

Discussions similaires

  1. Réponses: 10
    Dernier message: 22/03/2007, 08h36
  2. [MySQL] menu déroulant dynamique
    Par heteroclite dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/10/2006, 20h16
  3. menu déroulant dynamique
    Par jojo971 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/06/2006, 14h43
  4. [Conception] Menu déroulant dynamique et administrable
    Par guy2004 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 16/05/2006, 15h37

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