IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Supprimer affichage ligne d'un formulaire si date supérieure à aujourd'hui


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 311
    Par défaut Supprimer affichage ligne d'un formulaire si date supérieure à aujourd'hui
    Bonjour,

    J'ai essayé de créer une fonction qui me permet de ne pas afficher les lignes d'un formulaire si la date d'une colonne est supérieure à la date d'aujourd'hui mais cela ne fonctionne pas.
    Merci de votre aide

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     
    window.addEventListener("load",function()
                              {
       // Variable de la date du jour
       var date = new Date();
     
      // Appel de la collection des lignes de ta table;
     
        const lignes=document.querySelectorAll("tr");
     
       // Les lignes ayant une date supérieure à aujourd'hui napparaissent pas;
     
         lignes.forEach(function(v){if(v.directoryColDate > date){v.style.display="None";}})
         },false)

    La page : https://champfrance.soinsenergie.fr/...u-liste-compet

    Merci de votre aide

    Marc G.

  2. #2
    Membre éclairé Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 311
    Par défaut
    J'ai modifié le code mais cela ne marche pas mieux
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
      window.addEventListener("load",function()
                              {
      // Appel de la collection des lignes de ta table;
     
        const lignes=document.querySelectorAll("tr");
     
        // Variables de la date du jour et date competition
       var date = Date.now();
       var datecomp = document.querySelectorAll("directoryColDate");	
     
       // Les lignes ayant une date supérieure à aujourd'hui napparaissent pas;
     
        lignes.forEach(function(d){if(d.datecomp < date){d.style.display="None";}})
         },false)
     
      }

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 210
    Par défaut
    Bonjour,
    il faudrait que tu essaies de comprendre ce que tu veux faire et ce que tu fais.
    • Lecture de la valeur de la cellule, c'est une chaine, pas un objet Date ;
    • Conversion en objet Date ;
    • Comparaison des deux données qui sont de même type ;
    • Suppression de l'affichage suivant le cas.


    Voilà une façon de faire parmi d'autres.

    Au passage dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var datecomp = document.querySelectorAll("directoryColDate")
    le sélecteur est incorrect il manque un point pour référencer une classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.querySelectorAll(".directoryColDate")
    PS : il serait peut-être bon de le faire côté serveur.

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    J'aurais gardé ton 1er code et fait:

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    lignes.forEach(function(d){
    	if(new Date(d.cells[0].textContent.split("/").reverse()) < new Date()){
    		d.style.display="none";
    	}
    })

  5. #5
    Membre éclairé Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 311
    Par défaut
    Voilà l'ensemble de mon code
    La première partie fonctionne bien(lignes contenant coupe de France colorées en violet), mais la partie que j'ai rajoutée ne fonctionne pas.
    Je pense qu'il y certaines subtilités de java que je n'ai pas encore comprises.
    De cette façon es ce que la seconde fonction est bien appelée ?
    Faut il donner un nouveau nom de fonction à la seconde ou je peux l'intégrer dans la première ?


    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    <script type="text/javascript">
     
      {
      window.addEventListener("load",function()
                              {
     
     
        // Appel de la collection des lignes de ta table;
     
        const lignes=document.querySelectorAll("tr");
     
        // Lignes qui contiennent coupe de France apparaissent en couleur;
     
        lignes.forEach(function(v){if(v.textContent.search("Manche de Coupe de France")!=-1){v.style.color="#9637a5",v.style.fontWeight="bold";}})
    },false)
     
     
      }                   
     
      {  
     
      //fonction pas d'afichage si date passée;                       
      // Appel de la collection des lignes de ta table;
     
       const lignes=document.querySelectorAll("tr");
     
        // Variables de la date du jour;
       var date=Date.now();
     
       // Les lignes ayant une date supérieure à aujourd'hui napparaissent pas;
     
       lignes.forEach(function(d){
    	if(new Date(d.cells[0].textContent.split("/").reverse()) < new Date()){
    		d.style.display="none";}})
     
       }                                                  
     
    </script>

  6. #6
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Attention à ce que tu fais:

    ==> Que viennent faire ces accolades à la ligne 4 et à la ligne 37: enlève-les, elles n'ont pas de sens?
    ==> ne redéfinis pas const lignes à la ligne 26: ça provoque forcément une erreur (console);
    ==> déplace ta ligne 16 en fin de script: tu refermes le listener alors que le reste est également à prendre en compte au chargement de la page!
    Et tout marchera.
    ==> Au cas où, ta ligne 29 ne sert à rien: tu n'utilises pas la variable...

  7. #7
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    ah tiens, tu peux aussi remplacer l'ensemble par ça (après un dernier scan...):

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    window.addEventListener("load",function(){
    	const lignes=document.querySelectorAll("tr");
     
    	lignes.forEach(function(v){
    		if(v.textContent.indexOf("Manche de Coupe de France")!=-1){
    			v.style.color="#9637a5",
    			v.style.fontWeight="bold";
    		};
    		if(new Date(v.cells[0].textContent.split("/").reverse()) < new Date()){
    			v.style.display="none";
    		}
    	})
    },false)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprimer les lignes en fonction de la date d'aujourd'hui
    Par ghitarais dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 27/10/2023, 10h13
  2. [XL-2003] supprimer une ligne en fonction d'une date
    Par bosk1000 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/05/2010, 20h55
  3. [IP-2003] Validation de données : Date supérieure à aujourd'hui
    Par Romeoo dans le forum InfoPath
    Réponses: 2
    Dernier message: 06/07/2009, 11h05
  4. Supprimer des lignes sur un test de date
    Par cynoq dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/11/2007, 17h37
  5. Supprimer une ligne dans un formulaire
    Par LAGARDETTE dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/09/2006, 20h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo