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] Listes déroulantes synchronisées sur bdd


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 22
    Points : 5
    Points
    5
    Par défaut [AJAX] Listes déroulantes synchronisées sur bdd
    Bonjour à tous,
    J'ai suivit le tutoriel ajax suivant...

    Tutoriel qui me permettrait normalement de synchroniser mes deux listes déroulantes à partir des données de ma base de donnée...
    Voici le code que j'obtient...
    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
    <?php
    $host_db = "***";
    $user_db = "***";
    $password_db = "***";
    $bdd_db = "***";
    $connect_db = mysql_connect($host_db,$user_db,$password_db);
    mysql_select_db($bdd_db,$connect_db);
     
    require_once("./ajax/xajax.inc.php");
     
    function SelectSouscat($catid)
     
    {
    $options="";
    $objResponse = new xajaxResponse();
    $sql="SELECT * FROM type_brush,type_int WHERE type_int.num_typebr=type_brush.num_typebr and type_int.num_type = '".$catid."'";
    $req=mysql_query($sql);
    while ($souscat = mysql_fetch_array($req))
    {
    $options .= '<option value="'.$souscat['num_typebr'].'">'.$souscat['lib_typebr'].'</option>';
    }
    $options .='</select>';
    $objResponse->addAssign("liste_souscat","innerHTML",$options);
    return $objResponse->getXML();
    }
     
    $xajax = new xajax();
    $xajax->registerFunction("SelectSouscat");
    $xajax->processRequest();
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <head><?php $xajax->printJavascript("./ajax/") ?></head>
    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
    <form method="post" action="f_enregistrement_zimage.php"><br /><p class="monstyle3">Choisissez le type de fichier :</p><select id="liste_cat" onchange="xajax_SelectSouscat(this.value)"> 
    <option value=""></option>
    <?php
     
     
    mysql_connect('***','***','***');
    mysql_select_db('***'); 
     
    $sql="select * from type_image";
     
    $rs=mysql_query($sql);
     
    while($cat=mysql_fetch_assoc($rs))
    {
    echo '<option value="'.$cat['num_type'].'">' . $cat['lib_type'] . '</option>';
     
    }
     
     
    ?>
     
     
     
     
     
     
     
    </select><br />
     
    <form method="post" action="f_enregistrement_zimage.php"><br /><p class="monstyle3">Choisissez le type de brush :</p><select id="liste_souscat">
    </select>
    <br />
    <br />
    <input type="submit" value="valider">
    </form>
    Malheureusement la synchronisation ne fonctionne pas, j'ai tout essayé mais rien...
    Voila le lien vers ma page, si cela peut être utile...

    J'ai essayé de voir si il s'agissait de la requète SQL, apparemment non... J'ai revu l'ensemble du code et rien ne me semble incohérent, donc je bloque toujours...
    N'ayant pas de message d'erreur c'est assez difficile...
    Merci de votre aide...

  2. #2
    Membre éprouvé Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    Bonjour !

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    "type_int.num_type = '".$catid."'"

    ici c'est un type entier non? or dans ta liste je vois plutôt des chaine comme "brush"... Peut être lors de l'appel faire :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <form method="post" action="f_enregistrement_zimage.php"><br /><p class="monstyle3">Choisissez le type de fichier :</p><select id="liste_cat" onchange="xajax_SelectSouscat(this.SelectedIndex)"> 
    <option value=""></option>
    ►Ne pas oublier le

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 22
    Points : 5
    Points
    5
    Par défaut
    C'était pas idiot du tout, oui, il s'agit bien d'entiers!
    Je viens d'essayer, mais cela ne change rien, on dirait que rien ne semble vouloir s'afficher entre les balises <select> et </select>
    De plus bizarrement j'ai une ligne blanche qui s'affiche dans ma première liste déroulante, or ma base de donnée ne contient aucune valeur vide pour ce champ...

    Merci pour ton aide...

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par Hefgé Voir le message
    on dirait que rien ne semble vouloir s'afficher entre les balises <select> et </select>
    ben justement, ton script génère bien les <option> et le </select>, mais pas le <select>
    Y a pas un os, là ?

    Pour info, pour IE (6 en tous cas) il n'est pas possible de modifier uniquement les options : il faut remplacer l'ensemble de l'objet (de <select> à </select>)

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #5
    Membre éprouvé Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    Pour la première ligne vide c'est à cause de ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value=""></option>
    Après honnêtement mes compétences en AJAX sont trop limité pour pouvoir te trouver une réponse
    ►Ne pas oublier le

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par obito Voir le message
    Pour la première ligne vide c'est à cause de ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value=""></option>
    Logique : les listes fonctionnent sur onchange : il faut obliger l'utilisateur à choisir une autre valeur que celle par défaut

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  7. #7
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 22
    Points : 5
    Points
    5
    Par défaut
    Bon pour la valeur vide alors c'est normal, merci , mais au niveau du <select> j'vois pas le problème, moi je le vois sous IE dans le code source... J'peux pas tout de suite aller vérifier sur FF mais si vous dites que le <select> manque, que faut il faire...
    Oui je sais que mon code actuel ne fonctionnera pas sous IE... Il y a des trucs que je modifierai par la suite, mais j'aimerai au moins qu'il fonctionne pour le moment sur firefox...

  8. #8
    Membre éprouvé Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    Ha je dis pas le contraire ^^ C'est évidemment qu'il faut éviter une valeur pas défaut d'entré, ca rajoutera juste un contrôle dans l'appel du script php (qui n'est pas fait il me semble)

    Je voulais juste montré à Hefgé pourquoi il a une ligne vide
    ►Ne pas oublier le

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Hefgé Voir le message
    mais au niveau du <select> j'vois pas le problème, moi je le vois sous IE dans le code source...
    Le code source est celui de la page initial (correspondant à l'url de ta barre d'adresse).
    Les modifications via Ajax n'apparaissent pas dans le code source

    Après ton appel Ajax essaye de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(document.forms[1].innerHTML);
    Tu devrais le voir, là (si tu tombes bien sur le bon <form>, vu qu'ils n'ont pas de nom )

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  10. #10
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 22
    Points : 5
    Points
    5
    Par défaut
    Hum je ne trouve pas ou placer ton code E.Bzz...
    Sinon sous FF rien n'a changé...
    Oui, j'ai enlevé les noms des listes au cas ou cela interférait avec l'ajax, je compte les renommer par la suite...

  11. #11
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Hefgé Voir le message
    Oui, j'ai enlevé les noms des listes
    Heu ... je parlais plutôt d'ajouter un name aux forms

    Sinon,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" value="nouveau select" onclick="alert(document.forms[1].innerHTML);">
    A utiliser après l'appel Ajax ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  12. #12
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 22
    Points : 5
    Points
    5
    Par défaut
    Oui la form, j'ai confondu...
    Voilà c'est fait, c'était la 0... Mais ça ne nous dit pas grand chose de plus... En tout cas avec IE...

  13. #13
    Membre éprouvé Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    Ben maintenant que tu as mis un nom a ton formulaire tu peux faire :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="button" value="nouveau select" onclick="alert(document.getElementsByName('nomduform').innerHTML);"/>

    On verra ce qu'il a dans le formulaire (et donc ce qu'il récupère dans depuis la liste déroulante
    ►Ne pas oublier le

  14. #14
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Hefgé Voir le message
    Oui la form, j'ai confondu...
    Voilà c'est fait, c'était la 0...
    D'où l'intérêt de leur donner un name quand il y a plusieurs forms dans une page
    Citation Envoyé par Hefgé Voir le message
    Mais ça ne nous dit pas grand chose de plus... En tout cas avec IE...
    Tu ne nous dit pas grand chose de plus.
    Mais à priori, tu as dû voir le résultat

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  15. #15
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par obito Voir le message
    Ben maintenant que tu as mis un nom a ton formulaire tu peux faire :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="button" value="nouveau select" onclick="alert(document.getElementsByName('nomduform').innerHTML);"/>

    On verra ce qu'il a dans le formulaire (et donc ce qu'il récupère dans depuis la liste déroulante
    Pas du tout, non, car il y aura une erreur !!!

    La syntaxe reste la même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     onclick="alert(document.forms['name_du_form'].innerHTML);">


    getElementsByName retourne un tableau ....

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  16. #16
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 22
    Points : 5
    Points
    5
    Par défaut
    Bah vous pouvez aller voir sur mon site (si vous avez FF on pourra avoir un autre point de vu), ptètre que vous verrez mieux que moi, mais a priori y a rien entre les <select> et </select> peu importe ce qui est demandé...
    L'adresse de mon site...

  17. #17
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Hefgé Voir le message
    y a rien entre les <select> et </select> peu importe ce qui est demandé...
    C'est donc que ton Ajax ne renvoie rien => regarde côté PHP et requête bdd ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  18. #18
    Membre éprouvé Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    Autant pour moi

    Je me sers surtout des id en fait pour afficher quelque chose... Donc le coup name j'ai péché ca sur un script ...

    Par ailleurs le script semble bien se lancer puisque j'ai un sablier... Sauf qu'il ne rempli rien donc le paramètre est mal récuperé selon moi.

    DOnc fait un alert lorsque tu entre dans ta fonction ajax pour afficher ce que tu récupère de ta liste déroulante
    ►Ne pas oublier le

  19. #19
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 22
    Points : 5
    Points
    5
    Par défaut
    Oui je pense que obito a raison car si j'avais une erreur php ou sql normalement j'aurais un message d'erreur et là je n'ai rien et le script semble se lancer...

    Par contre j'vais essayer de faire ce que tu m'demandes obito mais les commandes d'Amsterdam j'ai un peu de mal...

  20. #20
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par obito Voir le message
    Par ailleurs le script semble bien se lancer puisque j'ai un sablier...
    Oui, il a l'air de se lancer.
    Citation Envoyé par obito Voir le message
    Sauf qu'il ne rempli rien donc le paramètre est mal récuperé selon moi.
    Pas forcément : il peut y avoir un problème au niveau PHP (plantage ou conditions mal définies) ou au niveau SQL.
    Par exemple, c'est jamais bon les "select * from" : on "suppose" l'ordre des champs, et on ne les formatte pas pour les adapter à la réponse Ajax (gestion des quotes, par ex.)

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [AJAX] Liste déroulante pour afficher les informations en ajax div ?
    Par rob2-9 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 17/11/2006, 09h06
  2. [AJAX] Liste déroulante qui ne s'actualise pas avec XMLHttpRequest
    Par zoom61 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 14/11/2006, 09h52
  3. [AJAX] Listes déroulantes liées avec Ajax
    Par paupiette dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/08/2006, 16h51
  4. liste déroulante. positionnement sur valeur par défaut
    Par mathieu_r dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/06/2005, 15h45
  5. Liste déroulante pointant sur une page
    Par krfa1 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/03/2005, 09h26

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