cs_fabiano13
Messages postés262Date d'inscriptionmardi 26 février 2002StatutMembreDernière intervention27 février 2012
-
3 avril 2006 à 17:59
io_ost
Messages postés151Date d'inscriptionmercredi 1 février 2006StatutMembreDernière intervention 6 février 2009
-
3 avril 2006 à 18:22
Je bloc, pouvez-vous m'aider !
Grâce à l'aide de DB77, j'ai le script "1er EXEMPLE" qui permet de reconstruire un tableau avec toutes les combinaisons possibles de plusieurs chaines.
Je voudrai l'adapter ainsi : (voir le script 2eme exemple)
J'aurai qu'une seule chaine contenant toutes les options.
La dificulté c'est que je ne connais pas par avance le nom, ni le nombre de produits choisies et ni le nombres d'options choisies
Elles seront imbriquées de la manière suivantes :
var sRequette = "'Domicile'|'XXL'^'XL'^'L'^'M'^'S'|'Oui'^'Non'#'Extérieur'|'XXL'^'M'^'S'|'Oui'^'Non'"
1) le " # " est le séparateur des produits
2) le " | " est le séparateur des options
3) le " ^ " est le séparateur des choix des options
Pour cette exemple on aurai se résultat :
1) Domicile => XXL - XL - L - M - S => Oui - Non
2) Extérieur => XXL - M - S => Oui - Non
Le résultat final serai :
1er Tableau :
Domicile - XXL - Oui
Domicile - XXL - NON
Domicile - XL - Oui
Domicile - XL - NON
Domicile - L - Oui
Domicile - L - NON
Domicile - M - Oui
Domicile - M - NON
Domicile - S - Oui
Domicile - S - NON
2emeTableau :
Extérieur - XXL - Oui
Extérieur - XXL - NON
Extérieur - M - Oui
Extérieur - M - NON
Extérieur - S - Oui
Extérieur - S - NON
L'idée c'est qu'en amont je construis dynamiquement les objets (new array) et les instructions (boucle du type for) qui seront ensuite utilisées à construire mes tableaux.
J'ai une erreur du type "variable indéfini" !
Pouvez vous m'aider ?
Si non, est qu'il y a une autre méthode que celle-ci ?
Je vous en remercie par avance.
Cordialement,
Fabiano13
//////////////////////////////////////////// 1er EXEMPLE ////////////////////////////////////////////
<script language="javascript">
var Tag = "";
c1=new Array("Domicile");
c2=new Array("XXL","XL","L","M","S");
c3=new Array("Oui","Non");
Tag = "\"
for(i=0;i<c1.length;i++){
for(j=0;j<c2.length;j++){
for(k=0;k<c3.length;k++){
Tag += \"----
" + c1[i] + ", " + c2[j] + ", " + c3[k] + ", \"
}}}
Tag += "
"
</script>
<script>
document.getElementById("ici").innerHTML = Tag
</script>
"Domicile;XXL~XL~L~M~S;Oui~Non|Domicile;XXL~M~S;Oui~Non"
</html>
//////////////////////////////////////////// Fin 1er EXEMPLE ////////////////////////////////////////////
//////////////////////////////////////////// 2eme EXEMPLE ////////////////////////////////////////////
<script language="javascript">
var Tag = "";
var sRequette = "'Domicile'|'XXL'^'XL'^'L'^'M'^'S'|'Oui'^'Non'#'Extérieur'|'XXL'^'M'^'S'|'Oui'^'Non'"
var sReqSuite = sRequette.split("#")
for(i=0;i<sReqSuite.length;i++){
eval("var NvArray" + i + " = sReqSuite[" + i + "].split("|")")
}
var NbRequette = sReqSuite.length
QZ = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z")
sD = 0;
sForDepart = "";
for(w=0;w<NbRequette;w++){
var NbSubReq = eval("NvArray" + w + ".length")
for(d=0;d<NbSubReq;d++){
sg = eval("NvArray" + w + "["+ d +"].split("^")")
eval("c" + sD + "= new Array(" + sg + ")") // Objets du type new array
if (d==0){
eval("sForDepart" + w + "= " for(" + QZ[sD] + "=0;" + QZ[sD] + "<c" + sD + ".length;" + QZ[sD] + "++){ "") // 1er chaine instruction boucle du type for
eval("sForFin" + w + " = "}" ") //1er fin de chaine boucle
eval("sTDTag" + w + " = "<td>"+" + "c" + sD + "[" + QZ[sD] + "]" + "+"</td>"") // 1er chaine éléments c0[a] + c1[b] + c2[c] (les lettres a,b,c... sont les variables de la boucle)
}else{
eval("sForDepart" + w + "+= " for(" + QZ[sD] + "=0;" + QZ[sD] + "<c" + sD + ".length;" + QZ[sD] + "++){ "") // Suite chaines instructions boucle du type for
eval("sForFin" + w + " += "}" ") //Suite et fin chaine boucle
eval("sTDTag" + w + " += "<td>"+" + "c" + sD + "[" + QZ[sD] + "]" + "+"</td>"") // suite chaine éléments c0[a] + c1[b] + c2[c]
}
sD++
}
}
for(w=0;w<NbRequette;w++){
var NbSubReq = eval("NvArray" + w + ".length")
Tag += "\"
eval(eval(\"sForDepart\" + w) + \" Tag += \\"----
\" + eval(\"sTDTag\" + w) + \"\\" \" + eval(\"sForFin\" + w) ) // ici on récupère les chaines boucles + les chaines éléments avec les variables boucles
Tag += "
"
}
</script>
<script>
document.getElementById("ici").innerHTML = Tag
</script>
//////////////////////////////////////////// Fin 2eme EXEMPLE ////////////////////////////////////////////
A voir également:
Trouver toutes les combinaisons possibles d'une chaine ????