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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 22
    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 émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    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>

  3. #3
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 22
    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

    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
    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+

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

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    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

  6. #6
    Expert éminent

    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
    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+

  7. #7
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 22
    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
    Expert éminent

    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
    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+

+ Répondre à la discussion
Cette discussion est résolue.

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