Petit bug dans double liste Grand souci !

mike1103 Messages postés 4 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 23 octobre 2008 - 22 oct. 2008 à 16:03
mike1103 Messages postés 4 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 23 octobre 2008 - 23 oct. 2008 à 14:40
Bonjour à tous !
Je suis retraité et je travaille depuis plusieurs mois sur un gros projet.
En bon autodidacte, j'apprends, jour après jour, les astuces d'internet.
En ce moment, je coince car j'ai eu la chance de trouver un script d'une liste déroulante "modulée" qui correspondait à mes attentes.
Malheureusement, quand j'en mets deux sur la même page, il y en a une qui coince.
J'ai fait tous les forums sans trouver la solution.
Mais je suis persuadé qu'un génie verra en 2 secondes, le bug !
D'avance, je vous remercie infiniment pour que vous daignerez m'apporter.
Pépé.

Voici le code, "source" de mes soucis Lol
______________________________________________________________________________

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"><head>
<title>Double liste</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript">
<!--
list_choix = {
//
"America" : ["Select", "North America", "Central America", "South America"],

"North America" : ["Select", "United States of America", "Canada", "AmericanSamoa", "VirginIslands(US)"],

"United States of America" : ["Select", "Alabama", "Alaska", "Arizona", "Arkansas", "California", "North Carolina", "South Carolina", "Colorado", "Connecticut", "North Dakota", "South Dakota", "Delaware", "District of Columbia", "Floride", "Géorgie", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiane", " Maine", "Maryland", "Massachusetts", "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New York", "Nouveau-Mexique", "Ohio", "Oklahoma", "Oregon", "Pennsylvanie", "Rhode Island", "Tennessee", "Texas", "Utah", "Vermont", "Virginie", "Virginie-Occidentale", "Washington", "Wisconsin", "Wyoming"],
"Canada" : ["Select", "Alberta", "Colombie-Britannique", "Île-du-Prince-Édouard" , "Ontario" , "Québec", "Manitoba", "Nouveau-Brunswick", "Nouvelle-Écosse", "Saskatchewan", "Terre-Neuve-et-Labrador", "Territoires du Nord-Ouest","Yukon"],

"Central America" : ["Select", "Antigua & Barbuda", "Bahamas", "Barbados", "Belize", "CostaRica", "Cuba", "Dominica", "ElSalvador", "Grenada", "Guatemala", "Haiti", "Honduras", "Jamaica", "Mexico", "Nicaragua", "Panama", "SaintKitts&Nevis", "SaintLucia", "SaintVincent", "Trinidad&Tobago"],

"South America" : ["Argentina", "Bolivia", "Brazil", "Chile", "Colombia", "Ecuador", "Guyana", "Paraguay", "Peru", "Suriname", "Uruguay", "Venezuela"],

//AFRICA
"Africa" : ["Select", "Algeria", "Angola", "Benin", "Botswana", "BurkinaFaso", "Burundi", "Cameroon", "CapeVerde", "CentralAR", "Chad", "Comoros", "Congo", "Djibouti", "Egypt", "EquatorialGuinea", "Eritrea", "Ethiopia", "Gabon", "Gambia", "Ghana", "Guinea", "Guinea-Bissau", "IvoryCoast", "Kenya", "Lesotho", "Liberia", "Libyan", "Madagascar", "Malawi", "Mali", "Mauritania", "Mauritius", "Morocco", "Mozambique", "Namibia", "Niger", "Nigeria", "Rwanda", "SaoTome&Principe", "Senegal", "Seychelles", "SierraLeone", "Somalia", "SouthAfrica", "Sudan", "Swaziland", "Tanzania", "Togo", "Tunisia", "Uganda", "Zaire", "Zambia", "Zimbabwe"],

//ASIA
"Asia" : ["Select", "Middle East", "South Asia"],

"Middle East" :["Afghanistan", "Bahrain", "Cyprus", "Iran", "Iraq", "Israel", "Jordan", "Kuwait", "Lebanon", "Oman", "Qatar", "SaudiArabia", "Syria", "Turkey", "UnitedArabEmirates", "Yemen"],

"South Asia" : ["Select", "Bangladesh", "Bhutan", "BruneiDarussalam", "Cambodia", "China", "HongKong", "India", "Indonesia", "Japan", "Korea", "Laos", "Malaysia", "Maldives", "Mongolia", "Myanmar", "Nepal", "Pakistan", "Philippines", "Singapore", "SriLanka", "Taiwan", "Thailand", "Vietnam"],

//EUROPE
"Europe" : ["Select", "Albania", "Andorra", "Armenia", "Austria", "Azerbaijan", "Belarus", "Belgium", "Bosnia&Herzegowina", "Bulgaria", "Croatia", "CzechRepublic", "Denmark", "Estonia", "Finland", "France", "Georgia", "Germany", "Greece", "Hungary", "Iceland", "Ireland", "Italy", "Kazakhstan", "Kyrgyzstan", "Latvia", "Liechtenstein", "Lithuania", "Luxembourg", "Macedonia", "Malta", "Moldova", "Monaco", "Netherlands", "Norway", "Poland", "Portugal", "Romania", "Russia", "SanMarino", "SerbiaandMontenegro", "Slovakia", "Slovenia", "Spain", "Sweden", "Switzerland", "Tajikistan", "Turkmenistan", "Ukraine", "UnitedKingdom", "Uzbekistan"],

//OCEANIA

"Oceania" : ["Select", "Australia", "Fiji", "Kiribati", "MarshallIslands", "Micronesia", "Nauru", "NewZealand", "Palau", "PapuaNewGuinea", "SolomonIslands", "Tonga", "Tuvalu", "Vanuatu"]
}

function ajout(selection){
nb_select = selection.parentNode.getElementsByTagName("select").length;
if ( selection == selection.parentNode.getElementsByTagName("select")[nb_select-1] ) {
element_select = selection;
selection = selection.options[selection.selectedIndex].value;
if ( list_choix[selection] ) {
new_liste = document.createElement("select");
element_select.parentNode.appendChild(new_liste);
new_liste.setAttribute("id", "choix"+nb_select);
new_liste.setAttribute("name", "choix"+nb_select);
new_liste.onchange= function () {ajout(this) };
for (var i=0; i<list_choix[selection].length; i++) {
new_option = document.createElement("option");
new_liste.appendChild(new_option);
new_option.setAttribute("value", list_choix[selection][i]);
new_option.text = list_choix[selection][i];
}
}
}
else {
selection.parentNode.removeChild(selection.nextSibling);
ajout(selection);
}
if (list_choix[new_liste.options[0].value]) {
ajout(new_liste)
}
}

function MM_CheckFlashVersion(reqVerStr,msg){
with(navigator){
var isIE = (appVersion.indexOf("MSIE") != -1 && userAgent.indexOf("Opera") == -1);
var isWin = (appVersion.toLowerCase().indexOf("win") != -1);
if (!isIE || !isWin){
var flashVer = -1;
if (plugins && plugins.length > 0){
var desc = plugins["Shockwave Flash"] ? plugins["Shockwave Flash"].description : "";
desc = plugins["Shockwave Flash 2.0"] ? plugins["Shockwave Flash 2.0"].description : desc;
if (desc "") flashVer -1;
else{
var descArr = desc.split(" ");
var tempArrMajor = descArr[2].split(".");
var verMajor = tempArrMajor[0];
var tempArrMinor = (descArr[3] != "") ? descArr[3].split("r") : descArr[4].split("r");
var verMinor = (tempArrMinor[1] > 0) ? tempArrMinor[1] : 0;
flashVer = parseFloat(verMajor + "." + verMinor);
}
}
// WebTV has Flash Player 4 or lower -- too low for video
else if (userAgent.toLowerCase().indexOf("webtv") !-1) flashVer 4.0;

var verArr = reqVerStr.split(",");
var reqVer = parseFloat(verArr[0] + "." + verArr[2]);

if (flashVer < reqVer){
if (confirm(msg))
window.location = "http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash";
}
}
}
}
//-->
</script>

<script type="text/javascript">
<!--
list_choix = {

//ART//
"Art" : ["Select", "Movie", "Theater", "Television", "Song", "Painting", "Sculpture"],
"Movie" : ["Select", "Actress", "Actor", "Director", "Theater director", "Photographer"],
"Television" : ["Journalist", "Reporter", "Showman"],
"Song" : ["Select", "Singer", "Musician", "Group"],

//TECHNOLOGIES//
"Technologies" : ["Select", "Sciences", "IT Technologies", "Space Technologies"],
"Sciences" : ["Select", "Professor", "Scientist", "Researcher"],
"Space Technologies" : ["Select", "Professor", "Scientist", "Researcher"],
"Professor" : ["Select", "Professor 1", "Professor 2", "Professor 3"],
"Scientist" : ["Select", "Scientist 1", "Scientist 2", "Scientist 3"],
"Researcher": ["Select", "Researcher 1", "Researcher 2", "Researcher 3"],

//SPORTS//
"Sports" : ["Select", "Athletics", "Baseball","Baskettball", "Car Racing", "Cyclying", "Equestrian", "Fencing", "Football", "Handball", "Hockey", "Judo", "Rugby", "Scocer", "Swimming", "Tennis"],

//ATHLETICS//
"Athletics" : ["Select", "100 m", "200 m","5.000 m", "10.000 m", "Marathon"],

}

function ajout(selection){
nb_select = selection.parentNode.getElementsByTagName("select").length;
if ( selection == selection.parentNode.getElementsByTagName("select")[nb_select-1] ) {
element_select = selection;
selection = selection.options[selection.selectedIndex].value;
if ( list_choix[selection] ) {
new_liste = document.createElement("select");
element_select.parentNode.appendChild(new_liste);
new_liste.setAttribute("id", "choix"+nb_select);
new_liste.setAttribute("name", "choix"+nb_select);
new_liste.onchange= function () {ajout(this) };
for (var i=0; i<list_choix[selection].length; i++) {
new_option = document.createElement("option");
new_liste.appendChild(new_option);
new_option.setAttribute("value", list_choix[selection][i]);
new_option.text = list_choix[selection][i];
}
}
}
else {
selection.parentNode.removeChild(selection.nextSibling);
ajout(selection);
}
if (list_choix[new_liste.options[0].value]) {
ajout(new_liste)
}
}

function MM_CheckFlashVersion(reqVerStr,msg){
with(navigator){
var isIE = (appVersion.indexOf("MSIE") != -1 && userAgent.indexOf("Opera") == -1);
var isWin = (appVersion.toLowerCase().indexOf("win") != -1);
if (!isIE || !isWin){
var flashVer = -1;
if (plugins && plugins.length > 0){
var desc = plugins["Shockwave Flash"] ? plugins["Shockwave Flash"].description : "";
desc = plugins["Shockwave Flash 2.0"] ? plugins["Shockwave Flash 2.0"].description : desc;
if (desc "") flashVer -1;
else{
var descArr = desc.split(" ");
var tempArrMajor = descArr[2].split(".");
var verMajor = tempArrMajor[0];
var tempArrMinor = (descArr[3] != "") ? descArr[3].split("r") : descArr[4].split("r");
var verMinor = (tempArrMinor[1] > 0) ? tempArrMinor[1] : 0;
flashVer = parseFloat(verMajor + "." + verMinor);
}
}
// WebTV has Flash Player 4 or lower -- too low for video
else if (userAgent.toLowerCase().indexOf("webtv") !-1) flashVer 4.0;

var verArr = reqVerStr.split(",");
var reqVer = parseFloat(verArr[0] + "." + verArr[2]);

if (flashVer < reqVer){
if (confirm(msg))
window.location = "http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash";
}
}
}
}
//----------------------------------> CATEGORY <------------------------------------//-->
</script>

<style type="text/css">

<!--
body {
background-color: #FFFFFF;
}
.style18 {font-size: 15px; color: #0000FF; padding: 3px; font-family: Arial, Helvetica, sans-serif;}

-->
</style></head>




<td>Select your living place :

<select name="choix0" id="choix0" onchange="ajout(this)">
<option value="Select">Select</option>
<option value="America">America</option>
<option value="Africa">Africa</option>
<option value="Asia">Asia</option>
<option value="Europe">Europe</option>
<option value="Oceania">Oceania</option>
</select>

Select your catégory :: ,

----

<select name="choix" id="choix" onchange="ajout(this)">
<option value="Select">Select</option>
<option value="Art">Art</option>
<option value="Technologies">Technologies</option>
<option value="Sports">Sports</option>
</select>
</td>


</html>

6 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
23 oct. 2008 à 10:19
bonjour,

>>Je suis retraité
heureux homme
>>et je travaille depuis plusieurs mois sur un gros projet.

t'as pas honte de piquer du boulot aux ch'tiots jeunes qui en cherchent désépérément ?

quand à ton  ton souci, mon foie :

<script type="text/javascript">

list_choix = {
....

dans les 2 script.
c'est une variable globale. la 2ème affectation détruit la 1ère
( et il y en a d'autres ! )

soit tu changes les noms des variables dans le 2ème script
et mieux (?) serait d'en faire une fonction qu'on appelle en passant
les paramètres nécessaires et en utilisant des variables locales.

Cordialement

          Bul [mon Site] [M'écrire]         
0
mike1103 Messages postés 4 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 23 octobre 2008
23 oct. 2008 à 13:53
Salut Bul ! Grand merci pour ta réponse.
Rassures-toi, je ne pique le boulot à aucun jeune, d'aucune façon que ce soit. J'ai malheureusement perdu le mien suite à une erreur médicale et force est de constater que plus personne n'engage des plus de 50 ans.
Alors pour ne pas devenir inutile, je developpe depuis 18 mois un concept original destiné à une cause humanitaire ( aucun notion d'argent et de bénéfice à la cléf.)
Nonobstant, j'avais trouvé le script de cette liste générée idéal pour mon projet; mais malheureusement, ce script n'accepte pas la vie à deux !
Je ne suis pas à même de reformater le tout "en utilisant des variables locales); alors, dans le cadre la maquette de mon projet, je vais essayer de trouver une astuce pour combiner les 2 scripts sur deux frames différentes dans une frameset.
En cas d'intéret pour leprojet, je laisserai les progfessionnels IT mettrent au net mes esquisses.
Encore un grand merci d'avoir pris quelques minutes pour me répondre. Bon travail, beaucoup de succès et prends bien soin de toi !
Pépé
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
23 oct. 2008 à 14:12
>>je developpe depuis 18 mois un concept original destiné à une cause humanitaire
dieu me tripote... c'est encore pire !
ils ont les moyens de payer quelqu'un ! ( et grassement ;o)
>>plus personne n'engage des plus de 50 ans.

optimiste ?
>>pour combiner les 2 scripts sur deux frames différentes
bon développement, et amuse toi bien.
          Bul [mon Site] [M'écrire]         
0
mike1103 Messages postés 4 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 23 octobre 2008
23 oct. 2008 à 14:23
Resalut Marcel !
Tu te fourvoyes : je ne travaille pas pour une ONG, je developpe un projet personnel "humanitaire". Aussi, j'assume tous à mes frais.
Mais ce n'est pas grave.
J'ai employé mon astuce (2 frames et un frameset: 30 sec.
Je n'aurais pas du déranger des pros pour ce soucis mais, comme cela ne doit pas être fonctionnel uniquement visuel, ca va.
Encore Merci ! Et quitte à te faire tripoter, laisse dieu en dehors decela !
LOL
pépé
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
23 oct. 2008 à 14:37
>>j'assume tous à mes frais.

ah c'est pas pareil alors...
>>laisse dieu en dehors de cela !
c'est lui qui me tripote ! j'ai rien demandé.
          Bul [mon Site] [M'écrire]         
0
mike1103 Messages postés 4 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 23 octobre 2008
23 oct. 2008 à 14:40
Au revoir marcel !
Merci pour ton aide indirecte.
Pépé
0
Rejoignez-nous