Danamel
Messages postés9Date d'inscriptiondimanche 25 novembre 2007StatutMembreDernière intervention 4 novembre 2008
-
19 oct. 2008 à 17:57
Danamel
Messages postés9Date d'inscriptiondimanche 25 novembre 2007StatutMembreDernière intervention 4 novembre 2008
-
21 oct. 2008 à 13:54
Bonjour à tous
Désirant afficher la fête du jour sur un site ami, étant complétement novice en javascript j'ai glané des morceaux de script pour faire mon script.
J'ai fait un tableau avec tous les prénoms et avec ce code j'arrive à afficher la fête. Par contre désirant changer la couleur du saint en bleu et d'une sainte en rouge,les couleurs étant définies par un id qui setruve dans un fichier css. J'ai tenté de faire une regex mais là elle ne fonctionne pas. La f^te est corectement affichée chaque jour mais la couleur ne change pas.
Voici mon code:
date = adate.getDate()-1;
amois = adate.getMonth();
var feteJour = 'getFonc(amois,date)';
var reg = /^Saint\s/;
var resultat = reg.exec(feteJour)
if(resultat != 0 ) // On affiche le saint en couleur bleue
document.write(''+"Aujourd'hui nous fêtons " +("" + getFonc(amois,date) + ""));
else //On affiche la sainte en couleur rouge
document.write(''+"Aujourd'hui nous fêtons " +("" + getFonc(amois,date) + ""));
Pour compliquer la chose je voudrai que la fête serve de lien pour afficher une page de site avec descriptif du saint. La liste des URL étant également dans un tableau j'arrive a l'appeler par une fonction mais je ne sait pas faire le lien entre les 2 fonctions.
Merci d'avance de tous les conseils que vous voudrez bien me donner.
nickadele
Messages postés1251Date d'inscriptionmercredi 7 août 2002StatutModérateurDernière intervention10 avril 2013 21 oct. 2008 à 12:34
Re,
je ne comprend pas très bien l'utilité de transférer toutes ces données coté client si c'est juste pour afficher le nom d'un saint et un lien vers une page.
Pourquoi ne pas faire tout ce traitement coté serveur avec une base de donnée et un peu de code php ?
Sauf si l'intéret est de donner la possibilité à l'utilisateur de trouver un saint pour une date !?!
De plus ton code n'est pas très optimisé !
Pour faire simple :
1. avoir une table contenant pour chaque jour de caque mois le nom du saint et les autres infos comme le sexe, le path vers le site des Saints, ect...
Ex :
Mois Jour NomSaint Sexe Path
1 1 Fulgence M url du site
1 2 Bazile M url du site
.....
2. Faire une requète sur cette table
Select ma_table_saint.*
From ma_table_saint
Where Mois 1 and Jour 2
nickadele
Messages postés1251Date d'inscriptionmercredi 7 août 2002StatutModérateurDernière intervention10 avril 2013 20 oct. 2008 à 21:20
Bonjour,
que contient ta variable feteJour ?
La liste des URL étant également dans un tableau j'arrive a l'appeler par une fonction mais je ne sait pas faire le lien entre les 2 fonctions : Qu'entends-tu par lien entre les 2 fonctions ?
Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
Mon Blog
Danamel
Messages postés9Date d'inscriptiondimanche 25 novembre 2007StatutMembreDernière intervention 4 novembre 2008 20 oct. 2008 à 22:39
Bonsoir nickadele
Merci de te pencher sur mon problème.
La variable feteJour contient (Saint René) ou (Sainte Lucie) sans les parenthèses, par exemple suivant la date du jour et sélectionné dans un array qui contient tous les saints. Donc j'ai pensé quand faisant une condition sur la présence du mot Saint mais n'y connaissant pas grand chose en javascript mon code ne fonctionne pas.
Mon but est d'afficher d'une couleur différente les saints et les saintes.
Pour le lien je voudrai quand cliquant sur le nom du saint un lien ouvre un site ou se trouve les pages différentes chaque jour avec la description de l'historique du saint, les url se trouvant également dans un array.
Je te mets l'ensemble du fichier Ephemeride.js
var dd1, delai;
function debuteDate1(delai1) {
var adate, date, amois;
delai = delai1;
adate = new Date();
date = adate.getDate();
amois = adate.getMonth()+1;
if (amois == 1) date += " Janvier";
else if (amois == 2) date += " Fevrier";
else if (amois == 3) date += " Mars";
else if (amois == 4) date += " Avril";
else if (amois == 5) date += " Mai";
else if (amois == 6) date += " Juin";
else if (amois == 7) date += " Juillet";
else if (amois == 8) date += " Aout";
else if (amois == 9) date += " Septembre";
else if (amois == 10) date += " Octobre";
else if (amois == 11) date += " Novembre";
else if (amois == 12) date += " Decembre";
if (adate.getYear() > "99")
date += " " + adate.getYear();
else date += " " + (1900 + adate.getYear());
date = " " + date;
document.Tempsh.date.value = date;
dd1 = setTimeout("debuteDate1(delai)",delai1);
}
function getFonc(mois,jour) {
var ar = new Array(12)
ar[0] = getFete01(jour)
ar[1] = getFete02(jour)
ar[2] = getFete03(jour)
ar[3] = getFete04(jour)
ar[4] = getFete05(jour)
ar[5] = getFete06(jour)
ar[6] = getFete07(jour)
ar[7] = getFete08(jour)
ar[8] = getFete09(jour)
ar[9] = getFete10(jour)
ar[10] = getFete11(jour)
ar[11] = getFete12(jour)
return ar[mois]
}
//Affichage ephemeride
date = adate.getDate()-1;
amois = adate.getMonth();
function changeCouleur()
{
var feteJour = 'getFonc(amois,date)';
var reg = /^Saint\s/;
var resultat = reg.exec(feteJour)
if(resultat != 0 ) // On affiche le saint en couleur bleue
document.getElementById("saint");
else //On affiche la sainte en couleur rouge
document.getElementById("sainte");
}
document.write(''+"Aujourd'hui nous fêtons " + ''+getFonc(amois,date) +"");
C'est un peu long mais les array sont fait sur 365 jours.
D'avance merci
nickadele
Messages postés1251Date d'inscriptionmercredi 7 août 2002StatutModérateurDernière intervention10 avril 2013 21 oct. 2008 à 09:24
Bonjour,
selon ton code, feteJour ne contient pas la fete du jour mais la chaine de caratères 'getFonc(amois,date)'.
A la place de :
var feteJour = 'getFonc(amois,date)';
Faire :
var feteJour = getFonc(amois,date);
Nickadele
Vous n’avez pas trouvé la réponse que vous recherchez ?
Danamel
Messages postés9Date d'inscriptiondimanche 25 novembre 2007StatutMembreDernière intervention 4 novembre 2008 21 oct. 2008 à 11:14
Bonjour nickadele
J'ai supprimer les apostrophes comme tu le dit mais apparemment cela ne suffit pas. Il n'y a aucun changement à l'affichage. Je pense que la suite du code est bourré d'erreurs.
danamel
Danamel
Messages postés9Date d'inscriptiondimanche 25 novembre 2007StatutMembreDernière intervention 4 novembre 2008 21 oct. 2008 à 13:54
N'étant pas très fort non plus en php je pensais que le javascript serait plus simple. Mais je vais essayer ta solution en espérant m'en sortir.
Merci encore pour ta contribution.
Danamel