s'inscrire
 

  Accueil
Bookmarks
Weblog
Page du jour
Java
Zone libre
Javascript
Utils
Photos
Pendu
Wishlist

 
à propos...
 

Valid CSS!

 

<

Novembre '08

>

L

M

M

J

V

S

D

 

 

 

 

 

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

   jours fériés
   congés/ponts
 
 
Javascripts

 
 
 Infos sur le navigateur  Vérifier qu'au moins une case est cochée
 Gestion de saisies dans un tableau  Faire Apparaitre/Disparaitre un Calque
 Vérification et Reformatage de Date  Gestion de Plusieurs Popups
 Vérification Simple du Formatage  Placement et Replacement d'une Popup
 Listes Interactives  Ouvrir Une Popup en Fonction de la Résolution
 Liste Déroulantes Dynamiques  Nombre de Paramètres Variable
 Les Codes D'Erreurs Javascript  
 

Tous les sources javascripts utilisés ne sont pas encore mis en forme et affichés. Pour les voir faites afficher la source de la page. J'ai placé des en-têtes dans les commentaires pour retrouver plus facilement les fonctions correspondant aux sections

 Infos sur le navigateur


retour

 Gestion de saisies dans un tableau

Date et heure à appliquer aux lignes sélectionnées (les autres seront remises à blanc) :
   
Tous Lotdiff Libellé Date Heure Validation
F20210 Installation de F20210 sur EnvFctA
F20210 Installation de F20210 sur EnvFctB
F20210 Installation de F20210 sur EnvFctC
F20210 Installation de F20210 sur EnvFctD
     
       
Vous devez cocher la case en début de ligne pour pouvoir saisir une date et une heure.
Décocher une case efface les données de date et heure pour l'installation correspondante.
retour

 Vérification et Reformatage de date

date JJ/MM/AAAA : 
heure hh:mm:ss : 


AAAA-MM-JJ hh:mm:ss 


 Vérification Simple du Formatage de date et heures

date JJ/MM/AAAA : 
heure hh:mm:ss : 



 Listes Interactives



Fonction de Transfert :

function transfert(l1,l2)
{
    if (l1.options.selectedIndex>=0)
    {
        texte = l1.options[l1.options.selectedIndex].text;
        valeur = l1.options[l1.options.selectedIndex].value;
        o=new Option(texte,valeur);
        l2.options[l2.options.length]=o;
        l1.options[l1.options.selectedIndex]=null;
    }
    else
    {
        alert("Aucun element sélectionné");
    }
}


 Liste Déroulantes Dynamiques



Code des listes déroulantes :

<select name="typeFct" onchange="choixTypeFct=this.selectedIndex; generationEnvFct(this.form)" STYLE="background-color:#99CCFF;">
<option>Sélectionnez un type fonctionnel</option>
<option value="PROD">PROD</option>
<option value="VAL">VAL</option>
</select>
<select name="envFct" STYLE="background-color:#99CCCC;">
<option>Sélectionnez un environnement</option>
</select>

Javascript correspondant (d'après un script de Bobinours) :

// Creation d'un tableau a deux dimensions
generationListe = new Array();
generationListe["PROD"] = new Array("VOGA_B","BEGO_Q","BEGO_I","BEGO_R","REFPROD","BEGO_P","BEGO_T",
                "BEGO_W","VOGA_A","MATTO_A","BEGO_S");
generationListe["VAL"] = new Array("REFVAL");

// Une variable globale qui stocke le choix précédent de la liste
var choixTypeFct;

// fonction pour generer la liste B ***/
function generationEnvFct(leForm)
{
    var champsDest = leForm.envFct;
    var valSel = leForm.typeFct.value;
    var taille = champsDest.options.length;

    // Suppression des options présentes
    for(var i=1; i < taille ; i++)
    {
        champsDest.options[1] = null;
    }

    // Ajout des nouvelles options
    for(var i=0; i < generationListe[valSel].length; i++)
    {
        var opt = new Option(generationListe[valSel][i]);
        champsDest.options[champsDest.options.length] = opt;
    }
    champsDest.focus();
}


 Vérifier qu'au moins une case est cochée

auvergne
bouches-du-rhone
correze
savoie


Code des checkboxes :

<INPUT TYPE="checkbox" NAME="auvergne"> auvergne<br />
<INPUT TYPE="checkbox" NAME="bouches-du-rhone"> bouches-du-rhone<br />
<INPUT TYPE="checkbox" NAME="correze"> correze<br />
<INPUT TYPE="checkbox" NAME="savoie"> savoie<br />
<INPUT TYPE="button" onClick="ctrl_dpt(this.form)" VALUE="vérifier">

Javascript correspondant :

function ctrl_dpt(form)
{
    //on place un booléen case_cochee à false
    case_cochee=false;
    i=0;
    //tant qu'on n'a pas trouvé de case cochée
    //et qu'il reste une case on vérifie la case d'indice i
    while (i<form.length)
    {
        //si l'élément courant est de type checkbox
        //alors on l'inspecte
        if (form.elements[i].type=="checkbox")
        {
            if (form.elements[i].checked)
            {
                //une case est cochee -> on passe le boolean à true
                case_cochee=true;
            }
        }
        i++;
    }
    //le parcours est terminé, on inspecte le booléen
    //le booléen est toujours à faux -> aucune case n'a été cochée
    if (!case_cochee)
    {
        alert("Aucune case n'est cochée !");
        return false;
    }
    else // le booléen est à true -> une case a été cochée
    {
        alert("ok - une case est cochée");
        return true;
    }
}


 Faire Apparaitre/Disparaitre un Calque avec une checkbox

montrer/cacher

Code de la checkbox :

<INPUT TYPE="checkbox" onClick="montrer_cacher(this,'cluster')">

Javascript correspondant :

function montrer_cacher(laCase,leCalk)
{
    if (laCase.checked) //la case est cochée -> on montre le calque
    {
        document.getElementById(leCalk).style.visibility="visible";
    }
    else //la case n'est pas cochée -> on cache le calque
    {
        document.getElementById(leCalk).style.visibility="hidden";
    }
}


 Gestion de Plusieurs Popups

Chaque bouton ouvre une nouvelle popup mais un seul bouton les ferme toutes.
Si on clique plusieurs fois sur le même bouton,

   


Code de la checkbox :

<INPUT TYPE="checkbox" onClick="montrer_cacher(this,'cluster')">

Javascript correspondant :

tab_fen=new Array();

function ouvrir(url,nom)
{
    // on cherche si la fenêtre existe déjà
    // (en cas d'appel avec un même nom, la même fenêtre serait ré-utilisée
    // mais un objet de plus serait créé inutilement dans le tableau tab_fen)

    // on parcourt le tableau :
    // tant qu'on n'a pas trouvé une fenêtre de même nom (=tant que 'trouve' est faux)
    // ET qu'on n'a pas atteint la dernière case du tableau

    trouve = false;
    parc_tab=0;
    while ( (!trouve) && (parc_tab<=tab_fen.length-1) )
    {
        if (tab_fen[parc_tab].name==nom) //un fenêtre de même nom est trouvée
        {
             //ouverture de la fenêtre à la place de l'ancienne
            tab_fen[parc_tab]=window.open(url,nom,'width=300,height=150');
            tab_fen[parc_tab].focus();
            trouve=true; // passage du booléen à trUE pour interrompre le parcours
        }
        else // aucune fenêtre à cet endroit -> on incrémente l'indice de parcours
        {
            parc_tab++;
        }
    }
    // si aucune fenêtre de même nom n'a été trouvée dans le tableau
    // on crée une nouvelle fenêtre dans le tableau, à l'indice "longueur du tableau"

    if (!trouve)
    {
        // soit en dernière case
        tab_fen[tab_fen.length]=window.open(url,nom,'width=300,height=150');
        tab_fen[tab_fen.length-1].focus();
    }
}

// fermeture de toutes les fenêtres : on parcourt le tableau tab_fen
// et pour chaque case, on ferme la fenêtre correspondante
// ATTENTION : l'objet contenu dans le tableau n'est pas détruit pour autant,
// il peut être ré-utilisé

function fermerTout()
{
    for (i=0;i<tab_fen.length;i++)
    {
        if (tab_fen[i]!=null)
            tab_fen[i].close();
    }
}


 Placement et Replacement d'une Popup

Exemples de ré-utilisation d'une fenêtre déjà ouverte :
- Ouverture si la fenêtre n'existe pas
- Redimensionnement de la fenetre
- replacement avec les coordonnées X et Y par rapport à l'écran
Largeur : Hauteur :
Position horizontale : verticale :


200x100

200x100
200x100
200x100
La fonction de redimensionnement et replacement :

function redim(nom,largeur,hauteur,horizontal,vertical)
{
    //si les paramètres ne sont pas renseignés on leur met des valeurs par défaut
    if (!largeur)
        largeur=200;
    if (!hauteur)
        hauteur=100;
    if (!horizontal)
        horizontal=0;
    if (!vertical)
        vertical=0;
    trouve = false;
    parc_tab=0;
    //tant qu'on n'a pas trouvé l'objet fenetre
    //et qu'on n'a pas atteint la fin du tableau
    while ( (!trouve) && (parc_tab<=tab_fen.length-1) )
    {
        if (tab_fen[parc_tab]!=null) //s'il y a un objet fenêtre on le contrôle
        {
            if (tab_fen[parc_tab].name==nom) //un fenêtre de même nom est trouvée
            {
                tab_fen[parc_tab].resizeTo(largeur,hauteur);
                tab_fen[parc_tab].moveTo(horizontal,vertical);
                tab_fen[parc_tab].focus();
                trouve=true;
            }
            else
            {
                parc_tab++;
            }
        }
        else
        {
            parc_tab++;
        }
    }
    //on sort de la boucle et la fenetre n'a pas été trouvée
    if (!trouve)
    {
        message = "fenêtre "+nom+" inexistante !\n\n";
        message += "Voulez-vous ouvrir la fenêtre pour tester les fonctions ?";
        if (confirm(message))
        {
            params = 'width='+largeur+',height='+hauteur;
            params+= ',top='+vertical+',left='+horizontal;
            tab_fen[tab_fen.length]=window.open("../img/smileys/mdproud.gif",nom,params);
        }
    }
}


 Ouvrir Une Popup en Fonction de la Résolution

Une popup qui prend des dimensions données :
Une popup qui prend un ratio de l'écran : 1/

Code de la fenetre avec ratio :

function popupRatio(ratio)
{
    //taille de l'écran
    largeurEcran = screen.availWidth;
    hauteurEcran = screen.availHeight;
    //dimension de la fenetre
    largeur = largeurEcran/ratio;
    hauteur = hauteurEcran/ratio;
    //position de la fenetre pour centrage
    vertical = (hauteurEcran-hauteur)/2;
    horizontal = (largeurEcran-largeur)/2 ;
    //chaine de paramètres pour la fonction window.open
    params = 'width='+largeur+',height='+hauteur;
    params+= ',top='+vertical+',left='+horizontal;

    window.open('../img/smileys/mdproud.gif','',params);
}


 Nombre de Paramètres Variable
fonction avec 2 paramètres
fonction avec 3 paramètres

function nbParams()
{
    args = nbParams.arguments;
    nbPar = args.length;
    message ="Il y a "+nbPar+" parametres :\n";
    for (i=0;i<args.length;i++)
    {
        message+="- "+args[i]+"\n";
    }
    alert(message);
}