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 liées


Sujet :

JavaScript

  1. #41
    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
    Ben oui, mais là tu cherche à récupérer les 2 select dans la même requête : par rapport à ce que tu as déjà (pour minimiser les adaptations) il faudrait faire un appel Ajax par select ...

    A+

  2. #42
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 106
    Points : 37
    Points
    37
    Par défaut
    la c'est à dire qu'il faut que je duplique toutes mes lignes de la fonction go()?

  3. #43
    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 corsamobile Voir le message
    la c'est à dire qu'il faut que je duplique toutes mes lignes de la fonction go()?
    Le plus simple serait de dupliquer la fonction elle-même (=> go2() ) ou de la rendre paramétrable (en passant en param la page à appeler et ses paramètres et le select à mettre à jour) ...

    A+

  4. #44
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 106
    Points : 37
    Points
    37
    Par défaut
    ca commence a devenir compliquer!
    je m'enmele les pinceaux mdr

    alors je montre ce que j'ai fais

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    				function go2(){
    			   var xhr = getXhr();
    			   xhr.onreadystatechange = function(){
    			      if(xhr.readyState == 4 && xhr.status == 200){
    					leselect = xhr.responseText;
    					document.getElementById('Qte').innerHTML = leselect;
    			      }
    				  }
     
    			   xhr.open("POST","./ajax2.php",true);
    			   xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    			   sel = document.getElementById('Id_ref');
    			   id_ref = sel.options[sel.selectedIndex].value;
            		   xhr.send("Id_ref="+id_ref);
    				   }
     
    	</script>
    	</head> 
    	<body>
    		<form>
    			<fieldset style="width: 800px">
    				<legend>commande</legend>
    				<label>reference</label>
    				<select name='reference' id='Id_ref' onchange='go();'>
    					<option value='-1'>reference</option>
    					<?php
                                            //requete1
                                                    include ('connexion.php');
                                                    $res = mysql_query("SELECT * FROM reference");
                                                    while($row = mysql_fetch_assoc($res)){
                                                            echo "<option value='".$row["id"]."'>".$row["ref_pdt"]."</option>";
                                                    }
                                            ?>
    				</select>
     
    				<label>designation</label>
    				<div id='designation' style='display:inline'>
    					<select name='designation'>
    						<option value='-1'>designation</option>
    					</select>	
    				</div>
     
    				<label>Qte</label>
    				<div id='Qte' style='display:inline'>
    					<select name='Qte'>
    						<option value='-1'>Qte</option>
    					</select>
    					</div>			
    		</form>
    ajax2.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
    <?php
    //requete1
    	if(isset($_POST["Id_ref"])){
    		if ($db=mysql_connect('sql.arcotec.fr','arcotecfr','Flgv+532') ) {
    			if (mysql_select_db('arcotecfr',$db) ) {
    				$requete = "SELECT * FROM designation WHERE Id_ref=".$_POST["Id_ref"]."";
    				if ($res = mysql_query($requete) ) {
    					echo "<select name='designation'>";
    					while($row = mysql_fetch_assoc($res)){
    						echo "<option value='".$row["Id"]."'>".$row["des_pdt"]."</option>";
    						}
    						echo "</select>";
    						} else {
    					echo "Erreur de requête";
    				}
    			} else {
    				echo "Erreur sélection de base de données";
    			}
    		} else {
    			echo "Erreur de connexion mysql";
    		}
    	} else {
    		echo "Id_ref1 non défini";
        }
     
    ?>
    et la en faite sur la 3 eme liste deroulante il ne se passe rien!

  5. #45
    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
    Tu appelles toujours go() au lieu de go2() sur le onchange du select ...

    A+

  6. #46
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 106
    Points : 37
    Points
    37
    Par défaut
    c'est dans ajax2.php qu'il faut que je le mette ou dans index.php?

    car si je met go2() là à la place de go():
    <legend>commande</legend>
    <label>reference</label>
    <select name='reference' id='Id_ref' onchange='go();'>

    c'est pas bon puisse qu'il va m'executer seulement go2() et plus go()


  7. #47
    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
    Pour mettre en place ton 2° traitement, fais comme si le 1° n'existait pas !
    Veille seulement à ne pas utiliser les mêmes noms d'objets, de fonction etc ..

    Ca simplifiera : ça sera quasiment du copié/collé

    Une fois que ça fonctionnera, on verra si on peut optimiser sans trop compliquer

    A+

  8. #48
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 106
    Points : 37
    Points
    37
    Par défaut
    oui ca j'ai compris,

    si tu veux je te donne tous le code en entier!
    mais ce que j'ai pas compris c'es dans quel select faut-il que je mette le go2() pour qu'il m'affiche et ma designation et ma qte.

    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
    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
    67
    68
     
    function go(){
    			   var xhr = getXhr();
    			   xhr.onreadystatechange = function(){
    			      if(xhr.readyState == 4 && xhr.status == 200){
    					leselect = xhr.responseText;
    					document.getElementById('designation').innerHTML = leselect;
    			      }
    				  }
     
    			   xhr.open("POST","./ajax1.php",true);
    			   xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    			   sel = document.getElementById('Id_ref');
    			   id_ref = sel.options[sel.selectedIndex].value;
            		   xhr.send("Id_ref="+id_ref);
    				}
     
    				function go2(){
    			   var xhr = getXhr();
    			   xhr.onreadystatechange = function(){
    			      if(xhr.readyState == 4 && xhr.status == 200){
    					leselect = xhr.responseText;
    					document.getElementById('Qte').innerHTML = leselect;
    			      }
    				  }
     
    			   xhr.open("POST","./ajax2.php",true);
    			   xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    			   sel = document.getElementById('Id_ref');
    			   id_ref = sel.options[sel.selectedIndex].value;
            		   xhr.send("Id_ref="+id_ref);
    				   }
     
    	</script>
    	</head> 
    	<body>
    		<form>
    			<fieldset style="width: 800px">
    				<legend>commande</legend>
    				<label>reference</label>
    				<select name='reference' id='Id_ref' onchange='go();'>
    					<option value='-1'>reference</option>
    					<?php
                                            //requete1
                                                    include ('connexion.php');
                                                    $res = mysql_query("SELECT * FROM reference");
                                                    while($row = mysql_fetch_assoc($res)){
                                                            echo "<option value='".$row["id"]."'>".$row["ref_pdt"]."</option>";
                                                    }
                                            ?>
    				</select>
     
    				<label>designation</label>
    				<div id='designation' style='display:inline'>
    					<select name='designation'>
    						<option value='-1'>designation</option>
    					</select>	
    				</div>
     
    				<label>Qte</label>
    				<div id='Qte' style='display:inline'>
    					<select name='Qte'>
    						<option value='-1'>Qte</option>
    					</select>
    					</div>			
    		</form>
    	</body>
    </html>
    ajax1.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
     
    <?php
    //requete1
    	if(isset($_POST["Id_ref"])){
    		if ($db=mysql_connect('sql.arcotec.fr','arcotecfr','Flgv+532') ) {
    			if (mysql_select_db('arcotecfr',$db) ) {
    				$requete = "SELECT * FROM designation WHERE Id_ref=".$_POST["Id_ref"]."";
    				if ($res = mysql_query($requete) ) {
    					echo "<select name='designation'>";
    					while($row = mysql_fetch_assoc($res)){
    						echo "<option value='".$row["Id"]."'>".$row["des_pdt"]."</option>";
    						}
    						echo "</select>";
    						} else {
    					echo "Erreur de requête";
    				}
    			} else {
    				echo "Erreur sélection de base de données";
    			}
    		} else {
    			echo "Erreur de connexion mysql";
    		}
    	} else {
    		echo "Id_ref1 non défini";
        }
     
    ?>
    ajax2.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
     
    <?php
    //requete1
    	if(isset($_POST["Id_ref"])){
    		if ($db=mysql_connect('sql.arcotec.fr','arcotecfr','Flgv+532') ) {
    			if (mysql_select_db('arcotecfr',$db) ) {
    				$requete = "SELECT * FROM designation WHERE Id_ref=".$_POST["Id_ref"]."";
    				if ($res = mysql_query($requete) ) {
    					echo "<select name='Qte' id='Qte' onchange='go2();'>";
    					while($row = mysql_fetch_assoc($res)){
    						echo "<option value='".$row["Id"]."'>".$row["Qte"]."</option>";
    						}
    						echo "</select>";
    						} else {
    					echo "Erreur de requête";
    				}
    			} else {
    				echo "Erreur sélection de base de données";
    			}
    		} else {
    			echo "Erreur de connexion mysql";
    		}
    	} else {
    		echo "Id_ref1 non défini";
        }
     
    ?>
    merci

  9. #49
    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 corsamobile Voir le message
    si tu veux je te donne tous le code en entier!
    Pas besoin : plus le temps
    Citation Envoyé par corsamobile Voir le message
    mais ce que j'ai pas compris c'es dans quel select faut-il que je mette le go2() pour qu'il m'affiche et ma designation et ma qte.
    Il n'afficheras que l'un des 2 !
    Rappelles-toi : je t'ai dit de traiter les 2 indépendamment !

    Je ne vois d'ailleurs pas comment il pourrait faire les 2 : l'alim de la 3° liste dépend d'un choix dans la 2° .... dont l'alimentation dépend d'un choix dans la 1°

    Suit la logique

    A+

  10. #50
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 106
    Points : 37
    Points
    37
    Par défaut
    non en faite la deuxième liste depend de la première liste et la troisième liste depend aussi de la première liste!

  11. #51
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 106
    Points : 37
    Points
    37
    Par défaut
    merci pour ton aide

    j'ai reussi a faire un petit truc!

    je te donne les codes pour ke tu jete un coup d'oeil

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    			//requete1
    			function go(){
    			   var xhr = getXhr();
    			   xhr.onreadystatechange = function(){
    			      if(xhr.readyState == 4 && xhr.status == 200){
    					leselect = xhr.responseText;
    					document.getElementById('designation').innerHTML = leselect;
    					document.getElementById('Qte').innerHTML = leselect;
    			      }
    				  }
     
    			   xhr.open("POST","./ajax1.php",true);
    			   xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    			   sel = document.getElementById('Id_ref');
    			   id_ref = sel.options[sel.selectedIndex].value;
            		   xhr.send("Id_ref="+id_ref);
    				}		
     
    	</script>
    	</head> 
    	<body>
    		<form>
    			<fieldset style="width: 800px">
    				<legend>commande</legend>
    				<label>reference</label>
    				<select name='reference' id='Id_ref' onchange='go();'>
    					<option value='-1'>reference</option>
    					<?php
                                            //requete1
                                                    include ('connexion.php');
                                                    $res = mysql_query("SELECT * FROM reference");
                                                    while($row = mysql_fetch_assoc($res)){
                                                            echo "<option value='".$row["id"]."'>".$row["ref_pdt"]."</option>";
                                                    }
                                            ?>
    				</select>
     
    				<label>designation</label>
    				<div id='designation' style='display:inline'>
    					<select name='designation'>
    						<option value='-1'>designation</option>
    					</select>	
    				</div>
     
    				<div id='Qte' style='display:inline'>
    					</div>
    ajax1.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
    29
    30
    31
    32
    33
    34
    35
     
    <?php
    //requete1
    	if(isset($_POST["Id_ref"])){
    		if ($db=mysql_connect('sql.arcotec.fr','arcotecfr','Flgv+532') ) {
    			if (mysql_select_db('arcotecfr',$db) ) {
    				$requete = "SELECT * FROM designation WHERE Id_ref=".$_POST["Id_ref"]."";
    				if ($res = mysql_query($requete) ) {
    					echo "<select name='designation'>";
    					while($row = mysql_fetch_assoc($res)){
    						echo "<option value='".$row["Id"]."'>".$row["des_pdt"]."</option>";
    						}
    						echo "</select>";
    						}
    						if ($res = mysql_query($requete) ) {
    					echo '<label>qte</label>';
    					echo "<select name='Qte'>";
    					while($row = mysql_fetch_assoc($res)){
    						echo "<option value='".$row["Id"]."'>".$row["Qte"]."</option>";
    						}
    						echo "</select>";
    						} else {
    					echo "Erreur de requête";
    				}
    			} else {
    				echo "Erreur sélection de base de données";
    			}
    		} else {
    			echo "Erreur de connexion mysql";
    		}
    	} else {
    		echo "Id_ref1 non défini";
        }
     
    ?>
    et voila ce que ca donne en page d'accueil puis après selection
    Images attachées Images attachées   

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