begin process at 2012 05 29 00:52:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Javascript

 > 

Archives

 > 

Débutants

 > 

BOUCLE FOR


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

BOUCLE FOR

mercredi 4 janvier 2006 à 23:07:02 | BOUCLE FOR

tonytruand

BONSOIR,
Je me prends la tête avec une boucle for imbriquée que je n'arrive pas à faire, un ptit coup de main svp.

Bon là je peux créer un twisty en cliquant sur le bouton 1; j'aimerai pouvoir en créer plusieur simultanéement en fonction du chiffre que j'aurai inscrit dans un input; à votre avis

merci d'avance

<p><HTML><HEAD><TITLE></TITLE><LINK href="css.js" type=text/css rel=stylesheet>
<SCRIPT language=javascript type=text/javascript>
<!--
function affiche(a1,b1,l) {
if (a1.style.display =='') {
a1.style.display = 'none';
if (l== 1) {b1.src='./Img/tri.gif'; b1.alt='';}
}
else {
a1.style.display='';
if (l== 1) {b1.src='./Img/tridown.gif'; b1.alt='';}
}
}

-->
</SCRIPT>

<SCRIPT>function changediv2(){
var diva;
val =  document.getElementById('nbr').value;
for (var x=1; x<=val;x++);

if (document.getElementById('a'+val).contentEditable =='true')
{document.getElementById('a'+val).contentEditable ='false';}
else
{document.getElementById('a'+val).contentEditable ='true'}}</SCRIPT>

<SCRIPT>
function doSize(fSize)
{n=1;
  while (document.getElementById("a"+n)!=null)
        { document.getElementById("a"+n).document.execCommand('fontsize', false, fSize);
             n++;    }}
function doFont(fName)
{n=1;
  while (document.getElementById("a"+n)!=null)
        { document.getElementById("a"+n).document.execCommand('fontname', false, fName);
             n++;    }}
</SCRIPT>

<SCRIPT type=text/javascript>
function genere(nb)
{ for (var i=1;i<=nb;i++)
      { frm.innerHTML+="<div class=espace contentEditable=false style=width:600;height:25;></div><DIV style='CURSOR: hand;' onclick=affiche(a"+i+",b"+i+",1);><IMG id=b"+i+" style='DISPLAY: inline' src='./Img/tri.gif'   alt='' align=top border=0> <SPAN contentEditable=false style='CURSOR: hand; TEXT-DECORATION: underline'><B>1er SOUS TITRE</B></SPAN></DIV><COMMENT>/////SOUS SOUS TITRE 1////////</COMMENT><DIV class=SSTITRE id=a"+i+" contentEditable=false style='DISPLAY: none; width: 600;'><BR><H3>Sous-titre</H3>- </DIV>"; } }
</SCRIPT>

<SCRIPT type=text/javascript>
function generesous(nb)
{for (var i=1;i<=nb;i++);
var nb = document.getElementById('nbr2').value;
  { document.getElementById('a'+nb).innerHTML+="<div class=espace contentEditable=true style=width:600;height:25;></div><DIV style='CURSOR: hand;' onclick=affiche(a1"+i+",b1"+i+",1);><IMG id=b1"+i+" style='DISPLAY: inline' src='./Img/tri.gif'   alt='' align=top border=0> <SPAN contentEditable=true style='CURSOR: hand; TEXT-DECORATION: underline'><B>1er SOUS TITRE</B></SPAN></DIV><COMMENT>/////SOUS SOUS TITRE 1////////</COMMENT><DIV class=SSTITRE id=a1"+i+" contentEditable=true style='DISPLAY: none; width: 600;'><BR><H3>Sous-titre</H3>- </DIV>"; }}
</SCRIPT></HEAD><BODY onunload=Sauver();>

<FORM name=frm>
<INPUT  id=quantite size=1 value=0 name=nbr>
<INPUT  id=quantite2 size=1 value=1 name=nbr2>

<div style=visibility:visible>

1<INPUT onclick=genere(frm.nbr.value); type=button>
2<INPUT onclick=generesous(frm.nbr2.value); type=button value=1>
<INPUT style="WIDTH: 120px" onclick=changediv2(); type=button value=acces_champs>

 

<DIV class=SSTITRE id=a1 contentEditable=true style="WIDTH: 600px">eee</DIV>
<br><br><br>
<DIV class=SSTITRE id=a2 contentEditable=true style="WIDTH: 600px">jjj</DIV>

 

</FORM>


</BODY></HTML></p>


jeudi 5 janvier 2006 à 16:08:12 | Re : BOUCLE FOR

PetoleTeam

Membre Club


Exemple O combien pédagogique...

pour qu'une boucle fasse quelque chose EVITE le ; à la fin

function generesous(nb){
  for (var i=1;i<=nb;i++);  // elle tourne sur elle en incrémentant i
   var nb = document.getElementById('nbr2').value;
   {
      document.getElementById('a'+nb).innerHTML+="...blabla...";
   }
}
elle pourrait ressembler à cela...

function generesous(nb){
  // Pourquoi passer nb si il est redéfini
  var nb = document.getElementById('nbr2').value;
  for (var i=1;i<=nb;i++)
  {
      document.getElementById('a'+i).innerHTML+="...blabla...";
   }
}

Note au passage que i remplace nb qui lui ne bouge pas...

function changediv2(){
var diva; // ne sert à rien, c'est pour faire avancer le chimlblic
var val =  document.getElementById('nbr').value; // il sort d'ou nbr
for (var x=1; x<=val;x++){
  if (document.getElementById('a'+val).contentEditable =='true
'){
    document.getElementById('a'+val).contentEditable =
'false';
  }
  else{
   document.getElementById('a'+val).contentEditable =
'true';
  }
}
#1 :
val n'est pas incrémenté =>document.getElementById('a'+val) toujours le même...idem que generesous(nb) ci dessus...

#2 :
true et false sont des constante en mettant 'true' on obtient un chaine de caractère

On s'arrête là pour te laisser le temps de digérer...

Obstines toi c'est en forgeant qu'on devient fatigué forgeron...


jeudi 5 janvier 2006 à 17:28:27 | Re : BOUCLE FOR

tonytruand

merci beaucoup pour les conseils, j'y regarde dés que possible, je vais m'obstiner, car je ne suis pas encore fatigué.

@+

jeudi 5 janvier 2006 à 18:05:16 | Re : BOUCLE FOR

tonytruand

bonsoir,
résultat des courses je ne sais pas si tout est bien correct mais cela fonctionne sans erreur sur IE, il n'y a plus que le condenser et le détaillé qui ne prennent pas en compte les sous-titres.
(c'est le voir()  et nonvoir() qui coincent) 
voici le résultat :

<HTML><HEAD><TITLE></TITLE>
<style>
p {font:12pt times;text-decoration:none; color:blue}
div {font:12pt; color: blue;margin-left:5pt;line-height:12px}
body {font:12pt;font-family:verdana;line-height:15px}
.SSTITRE {margin-left:60pt;font:12pt;font-family:verdana;line-height:15px}
CALQUE {margin-left:60pt}
.class1 {color : red}
.class2 { scrollbar-face-color: pink; scrollbar-shadow-color: pink; scrollbar-highlight-color: pink; scrollbar-3dlight-color: pink; scrollbar-darkshadow-color: pink; scrollbar-track-color: pink; scrollbar-arrow-color: pink; background-color:pink; border:1; font-family: arial; font-size: 2px; color: pink; text-decoration: none; }
.nonvu {visibility : hidden}
.vu {visibility : visible}
.drag{position:relative;cursor:hand;}
.bleu {color : blue}
.espace {line-height:8px}
</style>


<SCRIPT language=javascript type=text/javascript>
<!--
function affiche(a1,b1,l) {
if (a1.style.display =='') {
a1.style.display = 'none';
if (l== 1) {b1.src='./Img/tri.gif'; b1.alt='';}
}
else {
a1.style.display='';
if (l== 1) {b1.src='./Img/tridown.gif'; b1.alt='';}
}
}

-->
</SCRIPT>

<SCRIPT type=Text/JavaScript>
function voir(val){
for (var i=1; i<=val;i++)
(document.getElementById('a'+i).style.display ='inline')&&(document.getElementById('b'+i).style.display ='inline');
}</SCRIPT>

<SCRIPT type=Text/JavaScript>
function nonvoir(val){
for (var i=1; i<=val;i++)
(document.getElementById('a'+i).style.display ='none')&&(document.getElementById('b'+i).style.display ='none');
}</SCRIPT>

<SCRIPT>function changediv2(){
val =  document.getElementById('nbr').value;
for (var x=1; x<=val;x++);
if (document.getElementById('a'+val).contentEditable =='true')
{document.getElementById('a'+val).contentEditable ='false';}
else
{document.getElementById('a'+val).contentEditable ='true'}}</SCRIPT>

<SCRIPT type=text/javascript>
function genere(nb)
{ for (var i=1;i<=nb;i++)
      { frm.innerHTML+="<div class=espace contentEditable=false style=width:600;height:25;></div><DIV style='CURSOR: hand;' onclick=affiche(a"+i+",b"+i+",1);><IMG id=b"+i+" style='DISPLAY: inline' src='./Img/tri.gif'   alt='' align=top border=0> <SPAN contentEditable=false style='CURSOR: hand; TEXT-DECORATION: underline'><B>1er SOUS TITRE</B></SPAN></DIV><COMMENT>/////SOUS SOUS TITRE 1////////</COMMENT><DIV class=SSTITRE id=a"+i+" contentEditable=false style='DISPLAY: none; width: 600;'><BR><A href='#'><H3>Sous-titre</H3></A>- </DIV>"; } }
</SCRIPT>

<SCRIPT type=text/javascript>
function generesous(nb,quant)
{for (var x=1;x<=quant;x++);
{for (var i=1;i<=nb;i++);
  { document.getElementById('a'+nb,+quant).innerHTML+="<div class=espace contentEditable=true style=width:600;height:25;></div><DIV style='CURSOR: hand;' onclick=affiche(a"+i+""+x+",b"+i+""+x+",1);><IMG id=b"+i+""+x+" style='DISPLAY: inline' src='./Img/tri.gif'   alt='' align=top border=0> <SPAN contentEditable=true style='CURSOR: hand; TEXT-DECORATION: underline'><B>1er SOUS TITRE</B></SPAN></DIV><COMMENT>/////SOUS SOUS TITRE 1////////</COMMENT><DIV class=SSTITRE id=a"+i+""+x+" contentEditable=true style='DISPLAY: none; width: 600;'><BR><H3>Sous-titre</H3>- </DIV>"; }}}
</SCRIPT>
</HEAD>
<BODY>
<FORM name=frm>
Nbre/ref 1er rg<INPUT id=quantite size=1 name=nbr>Nbre/ref 2eme rg<INPUT id=quant size=1 name=quant><INPUT style="WIDTH: 120px" onclick=changediv2(); type=button value=acces_champs><br>Genere 1er rg<INPUT onclick=genere(frm.nbr.value); type=button>Genere 2eme rg<INPUT onclick=generesous(frm.nbr.value,frm.quant.value); type=button value=>
<INPUT onclick=voir(); type=button value=DETAILLER> <INPUT onclick=nonvoir(); type=button value=CONDENSER>
</FORM>


</BODY></HTML>

jeudi 5 janvier 2006 à 19:03:01 | Re : BOUCLE FOR

tonytruand

Bon, j'ai laissé des ; aprés des for car cela m'arrage de ne générer des sous-titres qu'un par un, mais cela veut dire que certain ne servent à rien. Pourtant quand je les enlève plus rien ne fonctionne ???.

vendredi 6 janvier 2006 à 09:47:38 | Re : BOUCLE FOR

PetoleTeam

Membre Club
Amis du JOUR Bonjour...


Je doute que cela marche, essaies en activant le débugger de IE...

Tout d'abord tu peux mettre toutes tes fonctions dans la même balise <SCRIPT>...</SCRIPT> cela va éclaircir ton code

<SCRIPT language=javascript type=text/javascript>
//-----------------------
function affiche(a1,b1,l){
...blabla...
}
//----------------
function voir(val){
...blabla...
}
//----------------
function nonvoir(val){
...blabla...
}
//-------------------
function changediv2(){
...blabla...
}
//-----------------
function genere(nb){
...blabla...
}
//---------------------------
function generesous(nb,quant){
...blabla...
}

</SCRIPT>

Plus de rigeur ne nuit pas...
Apprend tout de suite la bonne écriture
exemple :
  <INPUT onclick=voir(); type=button value=DETAILLER>
devient
  <INPUT onclick="voir();" type="button" value="DETAILLER">

...c'est rien mais si tu prends l'habitude tout de suite c'est mieux...

Une bonne indentation, donc lisibilité, dans les codes c'est 80% des PBs en moins...

N'hésites pas à utiliser la fonction alert("valeur à afficher"); pour te rendre compte de la valeur des paramètres en cours d'excécution...
exemple :
//---------------------------
function generesous(nb,quant){
   alert( "Nb= " +nb +" Quant = " +quant);
  ...blabla...
}

N'hésites pas à tester avant de faire la suite...

exemple :

//---------------------------
function generesous(nb,quant){
  var Html="";
  var Obj;
  for (var x=1;x<=quant;x++);
  for (var i=1;i<=nb;i++);{
   
Obj = document.getElementById('a'+quant);
    if( Obj){
      Html  = " // La tu mets ton texte...
      Obj.innerHTML += Html;
    }
    else
      alert( "
document.getElementById(a" +quant +") n'existe pas");
  }
}

Il en veux est c'est ce qui compte...



vendredi 6 janvier 2006 à 10:00:13 | Re : BOUCLE FOR

tonytruand

meci beaucoup, je vais m'appliquer
@+



Cette discussion est classée dans : function, titre, document, for, getelementbyid


Répondre à ce message

Sujets en rapport avec ce message

Ptite question sur une function js [ par destiny ] Bonjour tlm :)Voila j'ai fais une ptite function js qui me modifie la VALUE de mon input suivant la valuer d'un checkbox!function MajTexteValider() {  iframe dans nelle fenetre _blank [ par tonytruand ] BonjourEst ce quelqu'un pourrait me donner un petit coup de main, merci par avancej'aimerai ouvrir le contenu d'un iframe dans une nouvelle page et je probleme avec une fonction javascript + css [ par edelendil ] Voila, je dois créer un menu déroulant composé de deux tableaux le premier contient le titre de la rubrique et reste toujours visible le deuxieme con ajax/xmlhttprequest [ par David_monchy ] salut à tous,je développe un chat, et j'ai un problème: j'utilise une liste de connectés qui affiche en 'temps reel' les membres connectés. Seulement, mettre une variable dans un lien [ par David78390 ] Salut à tous, j'ai un petit bug qui me gene. Je voudrais faire un avec une varaible dedans. Voila le code qui me permet de changer le texte en fonct Pb firefox pour cacher des div [ par fdthierry ] Bonjour,J'ai un menu qui se créé à partir d'une table.Le principe est le suivant:Année   Mois      JourAu chargement sous IE, je ne vois que les année augmenter variable et si plus grande que variable =0 ? [ par frvfrvfrvfrv ] bonjour à tous,voilà deja mon code source.function milieucentre(){pf = ((window.innerWidth!=undefined) ? window.innerWidth : document.documentElem Passage d'un paramètre attribut [ par Heirem ] Bonjour,Considérons les petites fonctions suivante bien connues :/** coche la checkbox passée en paramètre */function cocher(lobjet){ document.getElem scrollLeft d'un div avec overflow : auto [ par Teclis01 ] Bonjour ici :)Alors voilà j'ai un petit soucis avec les différents browser (et j'ai testé que sur 2 )voici le html (il manque quelques balises mais ri Javascript ave Mozila [ par sdbounana ] Bonjour tous le monde, J'ai des problèmes avec la compatibilité de mon site avec les autres navigateurs: Il fonctionne uniquement en Internet Explorer


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales