Passer les paramètres à une fct javascript

Bonjour tout le monde

J'ai une fonction javascript:

<script language="Javascript" type="text/javascript">

var op=-1;
function decremente(op1, []tab){
if(op==-1) op=op1;
op=parseInt(op)-3;
//document.getElementById('description').innerHTML=op;
document.write('<img src="image.jsp?iddd=tab[op]" width="300" height="300" />'); // j'arrive pas à afficher l'image :s
if(op==0) alert('finnn');
}

</script>

où op est un entier et []tab est un tableau d'entiers,
comment je peux afficher mon image en passant les paramètres de la fonction à la balise img src??

voici l'appel de la méthode javascript:

<a href="javascript:decremente(<%= op, []tab %>)" style="width: 90px; position:absolute;top:380px;left:30px;">Précédent</a>

merci d'avance,

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. function decremente(op1, tab){ 


    il ne faut pas les [] devant tab

    si l'argument 2 (est un array alors javascript recevra un array

    ensuite il faut que l'array tab soit de cette forme:

    tab[1]='image1.jpeg';
    tab[1]='image2.jpeg'; etc..

    le tab contient les src des images

    et
    document.write('<img src="'+tab[op]+'" width="300" height="300" />');
    1. Merci beaucoup Alain

      il me reste le problème de l'appel de cette fonction, quand j'essaie de l'appeler à travers:

      [CODE]
      <a href="javascript:decremente(<%= op, tab %>)" style="width: 90px; position:absolute;top:380px;left:30px;">Précédent</a>
      [/CODE]

      je reçois le message d'erreur suivant :
      [CODE]
      The method print(int) in the type JspWriter is not applicable for the arguments (int, int[])
      [/CODE]

      t'as une solution à ça?
      merci
      1. Merci beaucoup Alain
        il me reste le problème de l'appel de cette fonction, quand j'essaie de l'appeler à travers
        <a href="javascript:decremente(<%= op, tab %>)" style="width: 90px; position:absolute;top:380px;left:30px;">Précédent</a>

        je reçois le message d'erreur suivant :
        The method print(int) in the type JspWriter is not applicable for the arguments (int, int[])

        t'as une solution à ça?
        merci
        1. une solution purement javascript

          <script language="Javascript" type="text/javascript">
          //initialisation d'un array contenant tous les src des images il doit y en avoir autant que ton op
          var tab=new Array();
          tab[1]="image5.jpeg";
          tab[2]="image4.jpeg";
          tab[3]="image3.jpeg";
          tab[4]="image2.jpeg";
          tab[5]="image1.jpeg";
          var op=-1;
          function decremente(op1){
          if(op==-1) op=op1;
          op=parseInt(op)-3;
          //document.getElementById('description').innerHTML=op;
          document.write('<img src="'+tab[op]+'" width="300" height="300" />'); // j'arrive pas à afficher l'image :s
          if(op==0) alert('finnn');
          }
          
          </script>
          
          et l'appel
          
          <a href="javascript:decremente('5')" style="width: 90px; position:absolute;top:380px;left:30px;">Précédent</a>
          1. merci bcp pour ta réponse, ça marche
            mais j'ai un petit problème : je souhaite garder le css de la page, or une fois la fct javascript executé, je ne vois afficher que les images (les boutons, les étiquettes etc. disparaissent !!)
            t'as une solution?
            merci d'avance
            1. normal c'est le document.whrite qui "écrase tout"

              fais avec un innerHTML

              tu mets un <div id="zone_images"></div> à l'endroit de ta page où tu veux les avoir

              et dans la fct JS remplaces

              document.write('<img src="'+tab[op]+'" width="300" height="300" />');

              par:

              document.getElementById('zone_images').innerHTML = '<img src="'+tab[op]+'" width="300" height="300" />'