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 :

Modification automatique et journalière d'un lien


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 22
    Par défaut Modification automatique et journalière d'un lien
    Bonjour,

    J'ai un souci avec le script ci-dessous.

    Ce script, incorporé à une page.html, devrait
    permettre d'afficher chaque jour une page
    différente lorsqu'on clique sur un lien
    de cette page.

    Je viens de mettre en ligne ce script
    aujourd'hui 8 avril et c'est normalement laquestiondujour099 du 8 avril qui devrait s'afficher.

    Or, c'est laquestiondujour106 du 15 avril
    qui s'affiche.


    D'où vient le problème ?

    Merci d'avance.

    ALAIN

    Code : 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
    40
    41
    42
    43
    44
    45
    46
    47
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
      <title>nouveauscript</title>
      <meta http-equiv="content-type"
     content="text/html; charset=ISO-8859-1">
     
     
    <script language="JavaScript">
     
    function GetTodaysURL() {
     
      var Liste = [
        "laquestiondujour099.html",
        "laquestiondujour100.html",
        "laquestiondujour101.html",
        "laquestiondujour102.html",
        "laquestiondujour103.html",
        "laquestiondujour104.html",
        "laquestiondujour105.html",
        "laquestiondujour106.html",
        "laquestiondujour107.html"
      ];
     
      var now = new Date();
     
      var num = now.getDate();
     
      num --;                      
     
      num %= (Liste.length);  
     
      location.href = Liste[num];}
     
     
    </script> 
    </head>
     
    <body>
     
    <a href="#" onclick="GetTodaysURL();return(false);">Visitez le lien du jour</a> 
     
     
    <br>
     
    </body>
    </html>

  2. #2
    Membre éclairé Avatar de Billy KiT
    Inscrit en
    Mars 2011
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 66
    Par défaut
    Salut,

    Code : 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
     
    function GetTodaysURL() {
     
      var Liste = [
        "laquestiondujour099.html",
        "laquestiondujour100.html",
        "laquestiondujour101.html",
        "laquestiondujour102.html",
        "laquestiondujour103.html",
        "laquestiondujour104.html",
        "laquestiondujour105.html",
        "laquestiondujour106.html",
        "laquestiondujour107.html"
      ];
     
      var now = new Date(); // on est le 08/04/2011
     
      var num = now.getDate(); // num=8
     
      num --; // num=7                      
     
      num %= (Liste.length);  // num=7%9=7 (reste de la division)
     
      location.href = Liste[num];} // liste[7]="laquestiondujour106.html"
    C'est donc la méthode qui n'est pas bonne

  3. #3
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    comme le dit billy 8-1 = 7 et si on cherche le 7 dans ton tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var Liste = [
        "laquestiondujour099.html", //0
        "laquestiondujour100.html", //1
        "laquestiondujour101.html", //2
        "laquestiondujour102.html", //3
        "laquestiondujour103.html", //4
        "laquestiondujour104.html", //5
        "laquestiondujour105.html", //6
        "laquestiondujour106.html", //7 <- question 106 pour le 8 avril
        "laquestiondujour107.html" //8
      ];

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Citation Envoyé par vigiepresse
    Je viens de mettre en ligne ce script
    aujourd'hui 8 avril et c'est normalement laquestiondujour099 du 8 avril qui devrait s'afficher.
    il y a donc trop de données dans ton tableau.

    Si tu veux faire la rotation comme les semaines alors il te faut un tableau à 7 entrées pas plus.
    Code : 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
    <script type="text/javascript">
      var Liste = [
        "laquestiondujour099.html",
        "laquestiondujour100.html",
        "laquestiondujour101.html",
        "laquestiondujour102.html",
        "laquestiondujour103.html",
        "laquestiondujour104.html",
        "laquestiondujour105.html"//,
    //    "laquestiondujour106.html",
    //    "laquestiondujour107.html"
      ];
    for( var i = 1; i < 31; i++){
      document.write( i, ' -> ', Liste[(i-1)%Liste.length], '<br>');
    }
    </script>

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 22
    Par défaut Modification automatique et journalière d'un lien
    Bonjour,

    Merci à tous pour vos propositions.
    Je n'ai pas eu le temps de les tester car j'avais
    d'autres priorités.

    En plus, je me demande si j'ai été bien clair dans
    la présentation de ce que je souhaite obtenir.

    Je veux donc qu'un clic dans un même lien affiche
    chaque jour une page différente et je souhaiterais
    que cet automatisme soit programmé, non pas sur
    une semaine, mais sur les 365 jours de l'année
    .

    Dernière précision, les 365 pages qui s'afficheront
    chacune à leur tour seront toutes différentes
    .

    A+, j'espère

    ALAIN

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    un array de 365 element ?
    je vois pas l'interet de la chose

    d' autant plus si tes fichiers son nommés de façon rationnelle...
    recupère juste le numéro iso du jour et concatène le nom de fichier ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 22
    Par défaut Modification automatique et journalière d'un lien (suite)
    "array", "numéro iso du jour", "concatène",...
    ouh! que voilà du jargon de spécialiste complètement
    incompréhensible à moi qui n'en suis pas un.

    Mes 365 fichiers sont prêts et numérotés de 1 à 365,
    donc je préfèrerais ne pas avoir à les renommer
    lorsque je les mettrai en ligne.

    Est-ce possible d'avoir un script qui affiche le fichier 1 au jour J,
    le fichier 2 à J+1, le fichier 3 à J+2, le fichier 4 à J+3,... et ainsi
    de suite jusqu'au fichier 365 à J+364 ?????

    Merci.

    ALAIN

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Admettons que tes fichiers soient nommés rationnellement:
    fichier1.htm
    fichier2.htm
    fichier3.htm
    ...
    fichier11.htm
    fichier12.htm
    fichier13.htm
    ...
    fichier365.htm
    il suffit de récupérer avec javascript le numéro du jour dasn une variable et concaténer le nom du fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "fichier"+nrJour+".htm"
    La question est alors comment récupérer le nr du jour...

    On peut rapidement étendre la Date() javascript comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Date.prototype.Jour = function() {
    var prem = new Date(this.getFullYear(),0,1);
    return Math.ceil((this - prem) / 86400000  );
    }
    ce qui permet à partir d'une date de retourner son numéro ordinal dans l'année

    ton script deviendrait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var aujourdhui=new Date()
    NrJour=aujourdhui.Jour()
    self.location.href="fichier"+NrJour+".htm"
    Attention toutefois ce script sera basé sur la date locale du client !
    Donc modifiable par le client pour accéder à n'importe quelle page en changeant sa date système.
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/03/2007, 10h12
  2. Modification automatique d'un champ à la saisie
    Par Thomas_Laurent dans le forum ASP.NET
    Réponses: 2
    Dernier message: 30/01/2007, 14h40
  3. [Excel] modification automatique d'un mot
    Par tarmin dans le forum Excel
    Réponses: 2
    Dernier message: 11/09/2006, 13h25
  4. modification automatique de champs dans une requete
    Par toinish dans le forum Access
    Réponses: 2
    Dernier message: 27/04/2006, 16h43

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