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] Select box


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Par défaut [AJAX] Select box
    Bonjour a tous,
    j'ai un petit soucis avec un script PHP/MYSQL/AJAX pour une select box.
    impossible d'afficher le résultat dans le second select box !
    Voici les codes
    Fichier INDEX.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
    <html>
    <head>
     <title></title>
       <script src="ajax_req.js" type="text/javascript"></script>
    </head>
    <body>
    <form method="post">
    <select name="list_auto_marque" onchange="htmlData2('list_auto.php', 'ch_list_auto='+this.value)" />
    	<?php
            $db = mysql_connect('localhost', 'xxx', 'xxxxxxx');
            mysql_select_db('xxx',$db);
            $sql = 'SELECT id,marque FROM automobiles';
            $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
            while($data = mysql_fetch_assoc($req))
                {
                echo '<option value="'.$data['marque'].'">'.$data['marque'].'</option>';
                }
            ?>
    </select>
    <br>
    <div id="txtResult2"> <select name="list_auto_modele"><option></option></select> </div>
     
    <input type="submit" />
    </form>
    </body>
    </html>
    fichier LIST_AUTO.PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <select name="list_auto_modele">
    	<?php
    	$db = mysql_connect('localhost', 'xxx', 'xxxxxx');
    	mysql_select_db('xxx',$db);
    $go_list_auto=$_GET['ch_list_auto'];
    	$sql2 = 'SELECT * FROM automobiles WHERE marque='.$go_list_auto.'';
    	$req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    	while($data2 = mysql_fetch_assoc($req2))
    	    {
    	    echo '<option value="'.$data2['id'].'">'.$data2['modele'].'</option>';
    	    }
    	?>
    </select>
    fichier AJAX_REQ.JS
    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
    function GetXmlHttpObject(handler)
    {
       var objXMLHttp=null
       if (window.XMLHttpRequest)
       {
           objXMLHttp=new XMLHttpRequest()
       }
       else if (window.ActiveXObject)
       {
           objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
       }
       return objXMLHttp
    }
     
    function stateChangedé()
    {
       if (xmlHttp.readyStateé==4 || xmlHttp.readyStateé=="complete")
       {
               document.getElementById("txtResulté").innerHTML= xmlHttp.responseText;
       }
       else {
               //alert(xmlHttp.status);
       }
    }
     
     
    // Will populate data based on input
    function htmlData2(url, qStr)
    {
       if (url.length==0)
       {
           document.getElementById("txtResult2").innerHTML="";
           return;
       }
       xmlHttp=GetXmlHttpObject()
       if (xmlHttp==null)
       {
           alert ("Browser does not support HTTP Request");
           return;
       }
     
       url=url+"?"+qStr;
       url=url+"&sid="+Math.random();
       xmlHttp.onreadystatechange=stateChanged2;
       xmlHttp.open("GET",url,true) ;
       xmlHttp.send(null);
    }
    Quelqu'un voit-il le problème ?
    merci d'avance pour votre aide.

  2. #2
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Bonjour, peux-tu nous donner plus de détails : message d'erreur, résultat erroné... ?

    Sinon, tu peux jeter un oeil ici : http://siddh.developpez.com/articles/ajax/#LIV-A

    Bon développement

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Par défaut Aucun message d'erreur
    Aucun message d'erreur.
    Simplement pas de résultat apparaissant dans la seconde liste !?

  4. #4
    Membre Expert
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Billets dans le blog
    1
    Par défaut
    Yop!

    La première chose qui me frappe est dans INDEX.PHP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select name="list_auto_marque" onchange="htmlData2('list_auto.php', 'ch_list_auto='+this.value)"
    J'aurais plutôt vu ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select name="list_auto_marque" onchange="htmlData2('list_auto.php', 'ch_list_auto='+this[selectedIndex].value)"

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Par défaut Bien vu !
    Bien vu, hélas, ca ne change rien !
    je vais refaire le code complet, il menque peut etre une , un ; ou ' etc... ;-)

  6. #6
    Membre Expert
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Billets dans le blog
    1
    Par défaut
    Yop!


    Le code dans AJAX_REQ.JS m'a l'air assez zarbi...En tout cas, ce n'est pas comme cela que je l'aurais écrit.

    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
     
    function getXhr()
    {
      var xhr = null; 
      if(window.XMLHttpRequest) // Firefox et autres
        xhr = new XMLHttpRequest(); 
      else if(window.ActiveXObject)
      { // Internet Explorer 
        try 
        {
          xhr = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (e) 
        {
          xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
      }
      else 
      { 
        alert("Your browser doesn't support XMLHTTPRequest objects..."); 
        xhr = false; 
      } 
      return xhr;
    }
     
    function htmlData2(url, qStr)
    {
      var xhr = getXhr();
      xhr.onreadystatechange = function()
      {
        if(xhr.readyState == 4 && xhr.status == 200)
        {
          document.getElementById("txtResult2").innerHTML= xhr.responseText    
        }
      }
      url=url+"?"+qStr;
      url=url+"&sid="+Math.random();
      xhr.open("GET",url,true) ;
      xhr.send(null); 
    }

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 12/01/2008, 22h53
  2. [AJAX] Grey Box et opacité de son contenu
    Par Prosis dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/10/2007, 13h50
  3. [AJAX] <select> Client et <select> Projets lié
    Par van___fanel dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 14/04/2007, 18h25
  4. Réponses: 2
    Dernier message: 25/01/2007, 12h28
  5. Select box et text box via $_POST
    Par xdiethank dans le forum Langage
    Réponses: 10
    Dernier message: 03/08/2006, 12h58

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