Bonjour,
j'ai un très gros souci sur mon code qui marche bien sur IE, mais plante sur Mozilla.
En effet il s'agit en gros de récupérer le choix d'un utilisateur, l'insérer dans un flux xml
qui est utilisé dans l'autre page. Le problème c'est l'affichage du choix de l'utilisateur et
et la construction du flux. Tout ça marche bien sous IE.
j'ai ajouté dans le code le teste des navigateurs, et j'ai les erreurs au niveau de :
xCrit.documentElement.appendChild ->(voilà ce que j'ai fait : xCrit.appendChild()..)
puis
cell = ligne.insertCell();->(ici j'ai fait cell = ligne.insertCell(0); en incrémentant pour chaque cellule)
mais rien ne s'affiche. Je suppose que l'ajout d'attribut n'est pas pris en compte avec ce navigateur !
Voilà les codes :
Je vous remercie d'avance de votre aide .
j'ai un très gros souci sur mon code qui marche bien sur IE, mais plante sur Mozilla.
En effet il s'agit en gros de récupérer le choix d'un utilisateur, l'insérer dans un flux xml
qui est utilisé dans l'autre page. Le problème c'est l'affichage du choix de l'utilisateur et
et la construction du flux. Tout ça marche bien sous IE.
j'ai ajouté dans le code le teste des navigateurs, et j'ai les erreurs au niveau de :
xCrit.documentElement.appendChild ->(voilà ce que j'ai fait : xCrit.appendChild()..)
puis
cell = ligne.insertCell();->(ici j'ai fait cell = ligne.insertCell(0); en incrémentant pour chaque cellule)
mais rien ne s'affiche. Je suppose que l'ajout d'attribut n'est pas pris en compte avec ce navigateur !
Voilà les codes :
a écrit :
<script language="JavaScript">
// création d'un objet xCrit
var tab=new Array(3);
var nbcrit = 0;
/*--
-->Ce code en commentaire marche bien sous IE
var xCrit = new ActiveXObject("MSXML.DomDocument");
xCrit.loadXML("<root />");
--*/
//--test (pour avoir le type de navigateur)
if(window.ActiveXObject){
var xCrit = new ActiveXObject("Microsoft.XMLDOM");
xCrit.loadXML("<root />");
}else if(document.implementation && document.implementation.createDocument){
var xCrit = document.implementation.createDocument("","",null);
xCrit.load("<root />");
}else{
alert("Votre navigateur ne prend pas cette méthode de recherche !");
}
//--fin test
var cptCrit = 0 ;
function Crite(ctype, csigne,cval) {
this.ltype = ctype;
this.signe = csigne;
this.valeur= cval;
}
function ajoutcrite(a,b,c){
tab[nbcrit++] = new Crite(a,b,c);
return true;
}
function ajoutCritere(){
var letype = document.MRB.ltype[document.MRB.ltype.selectedIndex].value;
var titre1 = document.MRB.ltype[document.MRB.ltype.selectedIndex].text;
var lesigne = document.MRB.signe.value;
var lavaleur = document.MRB.valeur.value;
if(isNaN(lavaleur)){
alert("Rentrez une valeur numérique SVP merci !");
document.MRB.valeur.focus();
return false
}
for (var K=0;K < nbcrit;K++)
{
if ((tab[K].ltype == letype) && (tab[K].signe == lesigne) && (tab[K].valeur == lavaleur)){
alert("Vous avez déjà sélectionné ce critère ");
return false ;
}
}
if((letype !="")&&(lesigne !="")&&(lavaleur !="")){
var xNoeud = xCrit.createElement("critere"); // Création du nouveau noeud...
xNoeud.setAttribute("id", ++cptCrit); // ... avec ses attributs
xNoeud.setAttribute("letype", letype);
xNoeud.setAttribute("lsign", lesigne);
xNoeud.setAttribute("laval", lavaleur);
xCrit.documentElement.appendChild(xNoeud); // On l'ajoute dans le XML marche avec IE
// AFFICHAGE : tab1 ici est l'id du champ ou va s'afficher le choix de l'utilisateur
ligne = tab1.insertRow(tab1.rows.length-1);
cell = ligne.insertCell(); //cell = ligne.insertCell(0);
cell.className = "border";
cell.align = "center";
cell.innerText = MRB.ltype.options[MRB.ltype.selectedIndex].text;
cell = ligne.insertCell(); //cell = ligne.insertCell(1);
cell.className = "border";
cell.align = "center";
//cell.innerText = MRB.signe.value;
cell.innerText = MRB.signe.options[MRB.signe.selectedIndex].text;
cell = ligne.insertCell(); //cell = ligne.insertCell(2);
cell.className = "border";
cell.align = "center";
cell.innerText = MRB.valeur.value;
cell = ligne.insertCell(); //cell = ligne.insertCell(3);
cell.className = "border";
cell.align = "center";
ajoutcrite(document.MRB.ltype.options[document.MRB.ltype.selectedIndex].value,document.MRB.signe.value,document.MRB.valeur.value);
cell = ligne.insertCell(); //cell = ligne.insertCell(4);
cell.className = "border";
cell.align = "center";
cell.innerHTML = ["<img align='absmiddle' alt='Supprimer ce critère !' src='../images/supr.gif' border='0' onclick='supCritere(" + cptCrit +");' style='cursor:hand'>"];
if(tab1.rows.length >=1){
//document.MRB.chercher.disabled=false ;
document.getElementById("chercher").disabled=false ;
}
}
}
</script>
Je vous remercie d'avance de votre aide .