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:
<article>
<id></id>
<nom></nom>
<fabriquant></fabriquant>
<type></type>
</article>
Les infos sont ensuite affiché dans les inputs correspondants. Cela fonctionne très bien quand tout les champs ont été renseigné.
Mais et c'est pour cela que je suis la il arrive parfois que les champs type ou fabriquant peuvent être vide.
Lorsque c'est le cas rien ne s'affiche dans les inputs et dans firebug j'ai cette erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
noeudstype[order].firstChild is null
comment faire pour que lorsqu'un de mes champs est vide cela ne bloque pas l'affichage du reste des infos?

voici la fonction afficher:
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
 
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");
                    noeudsfabriquant=xmldocument.getElementsByTagName("fabriquant");
                    noeudstype=xmldocument.getElementsByTagName("type");  					
 
                    var texteid=noeudsid[order].firstChild.nodeValue ;
                    var textenom=noeudsnom[order].firstChild.nodeValue ;
                    var textefabriquant=noeudsfabriquant[order].firstChild.nodeValue;
                    var textetype=noeudstype[order].firstChild.nodeValue;                    
 
                    document.getElementById("idid").value=texteid;
                    document.getElementById("idrep").value=textenom;
                    document.getElementById("idfabriquant").value=textefabriquant;
                    document.getElementById("idtype").value=textetype;
 
 
                }
                else
                {       var affichage=document.getElementById("cadre");
                        affichage.style.display='none';
 
                }
            }
merci d'avance