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

AJAX Discussion :

[AJAX] Listes liées - Formulaire


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Thésard BioInformatique
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Thésard BioInformatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut [AJAX] Listes liées - Formulaire
    Bonjour,

    J'essai de liées des listes dans un formulaire, mais après mon choix rien ne se passe.. Mais je n'ai pas d'erreur..


    Page appelante :
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>Acquisition species variant</title>
    <head>
    <script type="text/javascript">
    function request05(liste)
    {
    var l1    = f.elements["list1"];
    var l2    = f.elements["list2"];
    var index = l1.selectedIndex;
    if(index < 1)
       l2.options.length = 0;
    else {
       var xhr_object = null;
     
       if(window.XMLHttpRequest) // Firefox
          xhr_object = new XMLHttpRequest();
       else if(window.ActiveXObject) // Internet Explorer
          xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
       else { // XMLHttpRequest non supporté par le navigateur
          alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
          return;
       }
     
       xhr_object.open("POST", "test2.php", true);
     
       xhr_object.onreadystatechange = function() {
          if(xhr_object.readyState == 4)
             eval(xhr_object.responseText);
       }
     
       xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
       var data = "speciesvariant_name="+escape(l1.options[index].value)+"&form="+f.name+"&select=list2";
       xhr_object.send(data);
    }
     
    }
    </script>
    </head>
    <body>
    <form name="enter_nvll_xp_choix" action="Entree_dans_la_bdd/enter_DB_experience.php" method="POST"> 
    <?php
    mysql_connect("localhost", "root", ""); 
    mysql_select_db("test");
     
    $experience = mysql_query("SELECT * FROM speciesvariant");
     
    	echo '<tr><td>Test listes liees:</td>';
     
    	echo '<td><select name="list1" id="list1" class="ButtonL" onchange="request05(this.form)">';
    	echo '<option value="" selected disabled>Choix</option>';
     
    while ($speciesvariant_name1 = mysql_fetch_array($experience))
    	{
    		$speciesvariant_name2 = $speciesvariant_name1['speciesvariant_name'];
    		echo "<option value=\"$speciesvariant_name2\"> $speciesvariant_name2 </option>";
    	}
    	//echo '</select>';
    	echo '</td><td><select name="list2" id="list2" class="ButtonL"></td>';
     
     
    /*---------------------------------------------------------------------*/
     
     
    mysql_close(); 
    ?>
    test2.php :
    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
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>test</title>
    <head>
     
    </head>
     
    <body>
     
    <?php
    $mysql_db = @mysql_connect("localhost", "root", "");
    @mysql_select_db("test");
     
    $query  = "SELECT `AGI` FROM `gene` WHERE `speciesvariant_name` = '".$_POST["speciesvariant_name2"]."'";
    $query .= " ORDER BY `AGI`";
    $result = @mysql_query($query);
     
    echo 'var o = null;';
    echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];';
    echo 's.options.length = 0;';
    while($r = mysql_fetch_array($result))
    	echo 's.options[s.options.length] = new Option("'.$r["AGI"].'");';
     
    @mysql_close($mysql_db);
    ?>
    </body>
     
    </html>

    Est-ce vous pourriez me dire pourquoi la seconde liste ne se rempli pas ?

    Merci pour votre aide.

    Bien Cordialement,
    Onylink (Master 1 Bio-informatique)

  2. #2
    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,
    si tu terminais tes listes par le </select> requis, elles seraient sûrement mieux reconnues

    A+

  3. #3
    Membre éprouvé
    Homme Profil pro
    Thésard BioInformatique
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Thésard BioInformatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Bonjour,

    En fait le problème viens de la toute première balise.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    Selon le xmlns que vous utilisez vous n'aurez pas accès à toutes les ressources php. Où si mais en utilisant des techniques contournées.

    Voilà, j'en connais pas plus. Je suis juste allé vite fait lire le pourquoi de la chose. Donc..

  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
    Ben peut-être (je connais rien au PHP), mais
    Citation Envoyé par E.Bzz Voir le message
    si tu terminais tes listes par le </select> requis, elles seraient sûrement mieux reconnues
    sans ça, même "en utilisant des techniques contournées.", ça marchera pas

    A+

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Salut,
    Premièrement, il serait préférable de poster le code HTML généré plutôt que le PHP.
    Ensuite, une requête Ajax ne doit pas renvoyer une page complète (en-tête xml, balises head, body...).
    De plus tes pages PHP sont mal conçues, les balises meta et title doivent être dans le head et comme le précise E.Bzz, les select doivent être fermés !
    Donc tant que tes pages ne seront pas bien formées, tu auras beaucoup de mal avec Ajax
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. [AJAX] Listes liées: quelle solution?
    Par Xavier1979 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 23/05/2007, 09h40
  2. [AJAX] Listes liées
    Par oranocha dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/02/2007, 06h59
  3. [AJAX] listes liées : faire une redirection
    Par _nico42_ dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/10/2006, 13h28
  4. [AJAX] liste liée ajax: s'iou plait, cherchez l'erreur
    Par redwire dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/09/2006, 20h26
  5. [AJAX]Listes liées multiples
    Par Schuss dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 27/06/2006, 16h31

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