Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/05/2011, 11h44   #1
Membre habitué
 
Femme Chris
Développeur Web
Inscription : mai 2010
Messages : 225
Détails du profil
Informations personnelles :
Nom : Femme Chris
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2010
Messages : 225
Points : 103
Points : 103
Par défaut Liste déroulante lié a une autre liste déroulante

Bonjour,
J'ai une liste déroulante dans article.php ou lorsque je sélectionne un article cela m'envoie vers une page articlexml.php ou j'ai fait une requête pour avoir toute les infos liée a l'article sélectionné sous forme xml dont un champs etat:
<article>
<id></id>
<nom></nom>
...
<etat></etat>.
Les infos sont ensuite affiché dans les inputs correspondants. Cela fonctionne très bien. Pour le label état j'ai une liste déroulante qui récupère tout les états de la table lst_etat (actif,stoppe,problème...). Jusqu'ici rien de compliqué.

Ce que j'aimerai avoir c'est que l’état de l'article sélectionné par exemple actif soit sélectionné dans la liste déroulante des états.

voici la fonction afficher

Code :
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
 
function afficher(xmldocument,article)
{
	if(article.value=="lstarticle"){
		var order=-1;
	}
	else{
		var order=(article.selectedIndex-article.selectedIndex);
	}
 
	if (order!=-1){
		var affichage=document.getElementById("cadre");
		affichage.style.display='block';
 
		//noeud du fichier xml
		noeudsid=xmldocument.getElementsByTagName("id");               
		noeudsnom=xmldocument.getElementsByTagName("nom");	
		noeudsetat=xmldocument.getElementsByTagName("etat");		
 
		var texteid=noeudsid[order].firstChild.nodeValue ;
		var textenom=noeudsnom[order].firstChild.nodeValue ;
		var texteetat=noeudsetat[order].firstChild.nodeValue;                   
 
		document.getElementById("idid").value=texteid;
		document.getElementById("idrep").value=textenom;
 
		 //pour un input.    
		document.getElementById("idetat").value=texteetat;               
 
	}
	else
	{       var affichage=document.getElementById("cadre");
			affichage.style.display='none';
 
	}
}
et voici ma liste déroulante etat:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
<?php
	echo "<select name='idetat' id='idetat'>";
		$sql="select id,libelle
				from lst_etat";
		$req = pg_query($pgCnx, $sql);
		echo "<option value='lstrep'>Liste des etats</option>";
		while ($row=pg_fetch_assoc($req)) {
			echo "<option value='".trim($row['id'])."'>".trim($row['libelle'])."</option>";
		}
	echo "</select>";
?>
merci d'avance.
chris0938 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 12h49   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Bonsoir,

Je ne comprend pas bien ton soucis mais
Citation:
var order=(article.selectedIndex-article.selectedIndex);
sera toujours égal à 0.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 13h00   #3
Membre habitué
 
Femme Chris
Développeur Web
Inscription : mai 2010
Messages : 225
Détails du profil
Informations personnelles :
Nom : Femme Chris
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2010
Messages : 225
Points : 103
Points : 103
oui je sais. c'est pas le problème.

j'ai une liste déroulante d’état (actif,stoppé,problème....)
j'aimerai que lorsqu'on sélectionne l'article, l’état correspondants dans la liste déroulante s'affiche.
donc si l'article sélectionné son état est probléme alors dans la liste déroulante état soit "selected" probléme. actuellement c'est toujours la première ligne qui reste c'est a dire "liste état".

je sais pas si c'est plus clair.
chris0938 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 13h38   #4
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Parce que
Citation:
var texteetat=noeudsetat[order].firstChild.nodeValue;
Se pointe toujours au premier élément car order=0 et
Citation:
//pour un input.
document.getElementById("idetat").value=texteetat;
Citation:
echo "<select name='idetat' id='idetat'>";
tu as un input et un select avec le même id "idetat"?
Un id doit être unique dans un document.
Tu peut nous montrer ton code html généré et l'xml?

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 14h07   #5
Membre habitué
 
Femme Chris
Développeur Web
Inscription : mai 2010
Messages : 225
Détails du profil
Informations personnelles :
Nom : Femme Chris
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2010
Messages : 225
Points : 103
Points : 103
au début j’étais avec un simple input text mais je me suis rendu compte que cela serai plus pratique avec une liste déroulante si l'utilisateur modifie l’état je serai sur qu'il ne fasse pas d'erreur pour écrit l’état.
chris0938 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 14h22   #6
Membre habitué
 
Femme Chris
Développeur Web
Inscription : mai 2010
Messages : 225
Détails du profil
Informations personnelles :
Nom : Femme Chris
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2010
Messages : 225
Points : 103
Points : 103
Bon j'ai résolu mon probléme.
j'ai crée une fonction qui s’exécute quand on sélectionne un article et qui renvoie vers une page ou j'ai fais une requête pour récupérer l’état de l'article. Et pour ma liste déroulante je fais:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<?php
echo "<select name='idetat' id='idetat'>";
    if(isset($_POST["idarticle"])){           
               $sql="select id,libelle
                     from lst_etat";
               $req = pg_query($pgCnx, $sql);
                echo "<option value='idlste'>Liste etat</option>";
               while ($row=pg_fetch_assoc($req)) {
                   if($row['id']==$etat){
                       echo "<option selected value='".trim($row['id'])."'>".trim($row['libelle'])."</option>";
                   }else{
                       echo "<option value='".trim($row['id'])."'>".trim($row['libelle'])."</option>";
                   }                  
               }
     }
    echo "</select>";
?>
chris0938 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h14.


 
 
 
 
Partenaires

Hébergement Web