Calendrier Javascript : probleme compatibilité Mozilla

jojomillenium Messages postés 136 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 26 mai 2007 - 16 nov. 2004 à 17:42
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 16 nov. 2004 à 20:07
hello!
Vala j'ai un bleme, mon calendrier marche nicke sous explorer mais sous mozilla rien a faire, il apparait pour le mois present, mais si je veux changer de mois, d annee kan je peux pas cliquer sur un date (ce qui normalement m'inscit la date du jour ou G cliqué dans un champs exterieur)
Voila mon code, merci si vous pouvez m aider! :

dans <Head></Head>:

<SCRIPT LANGUAGE="JavaScript" type="text/javascript">

var dDate = new Date();
var dCurMonth = dDate.getMonth();
var dCurDayOfMonth = dDate.getDate();
var dCurYear = dDate.getFullYear();
var objPrevElement = new Object();

function fToggleColor(myElement) {
var toggleColor = "#ff0000";
if (myElement.id == "calDateText") {
if (myElement.color == toggleColor) {
myElement.color = "#F1DC2B";
} else {
myElement.color = toggleColor;
}
} else if (myElement.id == "calCell") {
for (var i in myElement.children) {
if (myElement.children.id == "calDateText") {
if (myElement.children[i].color == toggleColor) {
myElement.children[i].color = "#F1DC2B";
} else {
myElement.children[i].color = toggleColor;
}
}
}
}
}

function fSetSelectedDay(myElement){

if (myElement.id == "calCell") {
if (!isNaN(parseInt(myElement.children["calDateText"].innerText))) {
sJour = myElement.children["calDateText"].innerText;
sMois = frmCalendarSample.tbSelMonth.value;
if(sMois.length==1)
sMois = "0"+sMois;
if(sJour.length==1)
sJour = "0"+sJour;
document.add_revenu.date.value = sJour+"-"+sMois+"-"+frmCalendarSample.tbSelYear.value;

myElement.bgColor = "#c0c0c0";
objPrevElement.bgColor = "#546486";

document.all.calSelectedDate.value = parseInt(myElement.children["calDateText"].innerText);
objPrevElement = myElement;
}
}
}
function fGetDaysInMonth(iMonth, iYear) {
var dPrevDate = new Date(iYear, iMonth, 0);
return dPrevDate.getDate();
}
function fBuildCal(iYear, iMonth, iDayStyle) {
var aMonth = new Array();
aMonth[0] = new Array(7);
aMonth[1] = new Array(7);
aMonth[2] = new Array(7);
aMonth[3] = new Array(7);
aMonth[4] = new Array(7);
aMonth[5] = new Array(7);
aMonth[6] = new Array(7);
var dCalDate = new Date(iYear, iMonth-1, 1);
var iDayOfFirst = dCalDate.getDay();
var iDaysInMonth = fGetDaysInMonth(iMonth, iYear);
var iVarDate = 1;
var i, d, w;
if (iDayStyle == 2) {
aMonth[0][0] = "Dimanche";
aMonth[0][1] = "Monday";
aMonth[0][2] = "Tuesday";
aMonth[0][3] = "Wednesday";
aMonth[0][4] = "Thursday";
aMonth[0][5] = "Friday";
aMonth[0][6] = "Saturday";
} else if (iDayStyle == 1) {
aMonth[0][0] = "Dim";
aMonth[0][1] = "Lun";
aMonth[0][2] = "Mar";
aMonth[0][3] = "Mer";
aMonth[0][4] = "Jeu";
aMonth[0][5] = "Ven";
aMonth[0][6] = "Sam";
} else {
aMonth[0][0] = "Di";
aMonth[0][1] = "Lu";
aMonth[0][2] = "Ma";
aMonth[0][3] = "Me";
aMonth[0][4] = "Je";
aMonth[0][5] = "Ve";
aMonth[0][6] = "Sa";
}
for (d = iDayOfFirst; d < 7; d++) {
aMonth[1][d] = iVarDate;
iVarDate++;
}
for (w = 2; w < 7; w++) {
for (d = 0; d < 7; d++) {
if (iVarDate <= iDaysInMonth) {
aMonth[w][d] = iVarDate;
iVarDate++;
}
}
}
return aMonth;
}
function fDrawCal(iYear, iMonth, iCellWidth, iCellHeight, sDateTextSize, sDateTextWeight, iDayStyle) {
var myMonth;
myMonth = fBuildCal(iYear, iMonth, iDayStyle);
document.write("\")
document.write(\"----
\");
document.write(\"" + myMonth[0][0] + ", \");
document.write(\"" + myMonth[0][1] + ", \");
document.write(\"" + myMonth[0][2] + ", \");
document.write(\"" + myMonth[0][3] + ", \");
document.write(\"" + myMonth[0][4] + ", \");
document.write(\"" + myMonth[0][5] + ", \");
document.write(\"" + myMonth[0][6] + ", \");
document.write(\"\");
for (w = 1; w < 7; w++) {
document.write(\"----
\")
for (d = 0; d < 7; d++) {
document.write(\"");
if (!isNaN(myMonth[w][d])) {
document.write("" + myMonth[w][d] +"");
} else {
document.write(" ");
}
document.write(", \")
}
document.write(\"\");
}
document.write("
")
}
function fUpdateCal(iYear, iMonth) {
myMonth = fBuildCal(iYear, iMonth);
objPrevElement.bgColor = "#546486";
document.all.calSelectedDate.value = "";
for (w = 1; w < 7; w++) {
for (d = 0; d < 7; d++) {
if (!isNaN(myMonth[w][d])) {
calDateText[((7*w)+d)-7].innerText = myMonth[w][d];
} else {
calDateText[((7*w)+d)-7].innerText = " ";
}
}
}
}

</script>

Et dans body la ou je met mon calendrier :
[i]
<script language="JavaScript" for=window event=onload type="text/javascript">

var dCurDate = new Date();
frmCalendarSample.tbSelMonth.options[dCurDate.getMonth()].selected = true;
for (i = 0; i < frmCalendarSample.tbSelYear.length; i++)
if (frmCalendarSample.tbSelYear.options[i].value == dCurDate.getFullYear())
frmCalendarSample.tbSelYear.options[i].selected = true;

</script>

<form name="frmCalendarSample" method="post" action="">

<select class="field" name="tbSelMonth" onchange='fUpdateCal(frmCalendarSample.tbSelYear.value, frmCalendarSample.tbSelMonth.value)'>
<option value="1">Janvier</option>
<option value="2">Fevrier</option>
<option value="3">Mars</option>
<option value="4">Avril</option>
<option value="5">Mai</option>
<option value="6">Juin</option>
<option value="7">Juillet</option>
<option value="8">Août</option>
<option value="9">Septembre</option>
<option value="10">Octobre</option>
<option value="11">Novembre</option>
<option value="12">Decembre</option>
</select>
<select class="field" name="tbSelYear" onchange='fUpdateCal(frmCalendarSample.tbSelYear.value, frmCalendarSample.tbSelMonth.value)'>
<option value="1998">1998</option>
<option value="1999">1999</option>
<option value="2000">2000</option>
<option value="2001">2001</option>
<option value="2002">2002</option>
<option value="2003">2003</option>
<option value="2004">2004</option>
<option value="2005">2005</option>
<option value="2006">2006</option>
<option value="2007">2007</option>
</select>,

----

<script language="JavaScript" type="text/javascript">
var dCurDate = new Date();
fDrawCal(dCurDate.getFullYear(), dCurDate.getMonth()+1, 15, 15, "12px", "bold", 1);
</script>

</form>

Il y a un autre formulaire appelé 'add_revenu' dont le champs 'date' prend la valeur de la date cliqué sur le calendrier.

Si quelqu'un arrive a trouver une solution, c'est un Dieu!
Je me suis dis que ca pourrait marcher d'une autre facon genre au lieu d'utiliser les boucle avec des document.write(), d'ecrire le tableau en entier en html avec des id specifique dans chaque celleule, etc....
enfin

MERCI POUR VOTRE AIDE ET SUGGESTION!!!!

1 réponse

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
16 nov. 2004 à 20:07
va voir sur javascriptfr.com tu trouveras plus de monde capable de t'aider en javascript, ici c''est asp :)

@+

Cyril
0
Rejoignez-nous