Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] [Javascript] Mam kalendarz
Forum PHP.pl > Forum > Przedszkole
Lonas
Hej, pytanko, dlaczego ten skrypt działa pod IE a nie działa pod firefox ?
Jest to kalendarz, po nacisnieciu otweira sie okno wybieramy date i jest ona przenoszona do inputa.



kdaty.php :

  1. <!doctype html public "-//W3C//DTD HTML 4.0 //EN">
  2. <html>
  3. <head>
  4.  <title>Zmieniator daty dla J.D. E!</title>
  5.  <link rel="stylesheet" href="normal1.css" type="text/css" />
  6. <script language="JavaScript">
  7. //calendar
  8. function kalendarz(pole)
  9. {
  10.  window.open("dynamiczny_kalendarz.php?pole="+pole,"xx","WIDTH=250,HEIGHT=250");
  11. }
  12.  
  13. </script>
  14.  
  15.  
  16. </head>
  17. <body>
  18. <form name="form1" method ="GET" action="kdaty.php">
  19.  
  20.  <fieldset ><legend align='left'><font color="Orange"><b>Podaj zakres Daty:</b></font></legend>
  21.  
  22.  <font color="blue">data od :</font>
  23.  <input type ="text" name ="dateOd" value="<?php if(isset($dateOd))
  24.  {echo("$dateOd");}else {echo ("podaj date");}?>">
  25.  <a href="javascript:kalendarz(1)" onMouseOver="window.status='Kalendarz - data od'; return true" onMouseOut="window.status=''; return true"><img src="kalendar.gif" border="0" hspace="2"></a>
  26.  <br>
  27.  <font color="blue">data do :</font>
  28. <input type ="text" name ="dateDo" value="<?php if(isset($dateDo)) {print("$dateDo");}else {echo"podaj date";} ?>">
  29.  <a href="javascript:kalendarz(2)" onMouseOver="window.status='Kalendarz - data do'; return true" onMouseOut="window.status=''; return true"><img src="kalendar.gif" border="0" hspace="2"></a>
  30.  
  31.  <br>
  32.  <span style=
  33. background-color: #efefef;
  34. font-family: MS Shell Dlg, Verdana , Trebuchet MS, Verdana, Geneva, Arial, Helvetica,
     sans-serif;
  35. font-size: 10px;
  36. font-weight: bold;
  37. color: #333;
  38. padding: 2px>
  39. <input type = submit value="przelicz" style="color:orange;font-size:10px;font-weight: bold;background-color: white;padding: 2px"><br>
  40. </fieldset>
  41.  
  42. <?php
  43. //KONWERTUJE DATE NA FORMAT ZGODNY Z STRTOTIME
  44.  //$dateOd ='16-05-2005';
  45.  function dateFix($dateOd)
  46.  {
  47.  $day = substr($dateOd,0,2);
  48.  $month = substr($dateOd,3,2);
  49.  $year = substr($dateOd,6,4);
  50.  //$day = str_replace("0", "", $day);
  51.  $month = str_replace("01", "January", $month);
  52.  $month = str_replace("02", "February", $month);
  53.  $month = str_replace("03", "March", $month);
  54.  $month = str_replace("04", "April", $month);
  55.  $month = str_replace("05", "May", $month);
  56.  $month = str_replace("06", "June", $month);
  57.  $month = str_replace("07", "July", $month);
  58.  $month = str_replace("08", "August", $month);
  59.  $month = str_replace("09", "September", $month);
  60.  $month = str_replace("10", "October", $month);
  61.  $month = str_replace("11", "November", $month);
  62.  $month = str_replace("12", "December", $month);
  63.  
  64. $dateOd = $day . ' ' . $month . ' ' . $year;
  65.  return $dateOd;
  66.  }
  67.  
  68.  //$dateOd ='16-05-2005';
  69.  function dateFix2($dateDo)
  70.  {
  71.  $day = substr($dateDo,0,2);
  72.  $month = substr($dateDo,3,2);
  73.  $year = substr($dateDo,6,4);
  74.  //$day = str_replace("0", "", $day);
  75.  $month = str_replace("01", "January", $month);
  76.  $month = str_replace("02", "February", $month);
  77.  $month = str_replace("03", "March", $month);
  78.  $month = str_replace("04", "April", $month);
  79.  $month = str_replace("05", "May", $month);
  80.  $month = str_replace("06", "June", $month);
  81.  $month = str_replace("07", "July", $month);
  82.  $month = str_replace("08", "August", $month);
  83.  $month = str_replace("09", "September", $month);
  84.  $month = str_replace("10", "October", $month);
  85.  $month = str_replace("11", "November", $month);
  86.  $month = str_replace("12", "December", $month);
  87.  
  88. $dateDo = $day . '-' . $month . '-' . $year;
  89.  return $dateDo;
  90.  }
  91.  //----end functions headers
  92.  
  93.  //Gregorian english value
  94.  
  95. //echo "1 ".dateFix($dateOd);
  96. if(isset($dateOd))
  97. {
  98.  
  99. $dataUnix = strtotime (dateFix($dateOd));
  100. echo $dayJulian = date("z",$dataUnix);
  101. if($dateOd == null) {
  102. $year=date("y"); } else {
  103. $year = substr($dateOd,8,4); 
  104. }
  105. if(strlen($dayJulian) <= 2) {
  106. $zero_aj ="0";
  107. }else{
  108. $zero_aj ="";
  109. }
  110.  
  111. //dla 01-01-2005 :) 
  112. //$tmpDay = substr($dateOd,0,2);
  113. //if($tmpDay 
  114.  
  115. $JulianDateOd = ("1".$year.$zero_aj.$dayJulian)+01;
  116. $GregorianDateOd =  date("d-m-Y",$dataUnix);
  117.  
  118.  
  119.  //echo "1 ".dateFix($dateOd);
  120. $dataUnix1 = strtotime (dateFix2($dateDo));
  121. $dayJulian1 = date("z",$dataUnix1);
  122. //$year=date("y");
  123. //echo $year;
  124. if($dateDo !="")
  125. {
  126. $year =substr($dateDo,8,4);
  127. } else { $year=date("y"); } 
  128. if(strlen($dayJulian1) <= 2) {
  129. $zero ="0";
  130. }else{
  131. $zero ="";
  132. }
  133.  
  134. $JulianDateDo = ("1".$year.$zero.$dayJulian1)+1;
  135. $GregorianDateDo =  date("d-m-Y",$dataUnix1);
  136.  
  137.  
  138.  //show
  139. echo "<table><TR><TH> gregorian </TH><TH> julian </TH>"  ;
  140.  
  141.  
  142.  //$q=date('d-m-Y', mktime(0, 0, 0, "01", $dayJulian+1+$iter , "2005"));
  143.  echo "<TR><TD>".$GregorianDateOd."</TD><TD>".$JulianDateOd."</TD>"; 
  144.  echo "<TR><TD>".$GregorianDateDo."</TD><TD>".$JulianDateDo."</TD>";
  145.  
  146. }
  147.  
  148. ?>
  149. </table>
  150. <?php 
  151. if(isset($JulianDateOd)){
  152. echo "<font color=orange size = -1><i>"."JDE data :  ".$JulianDateOd." ".$JulianDateDo."</i>"; 
  153. }
  154. ?>
  155. </form>
  156. </body>
  157. </html>






Plik dynamiczny_kalendarz.php
Kod
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>Kalendarz</title>
<style type="text/css">
<!--
.BUTTON {
        border-top: 1px solid;
        border-right: 1px solid;
        border-bottom: 1px solid;
        border-left: 1px solid;
        border-color: #c3c3c3;
        background: #f0f0f0;
  width:30;
        font-family: Verdana;
  
  color:#000066;
        font-size: 12;
}
.text{
  
    color: #990000;
    font-family: arial;
    font-size:11;
    font-weight:bold;
    text-align:center;
    background-color: #f7f7f7;
    border: 1px solid;
    border-color: #cccccc;
  }
  .jeden{
     color: #000066;
    font-family: arial;
    font-size:11;
    font-weight:bold;
  }
-->
</style>
</head>
<body onload="thisMonth()">
<script language="JavaScript">

//Form button calendar (author unknown)

function setDate(str) {

if (str == "   ") {
  return;
}

mnth1 = document.forms[0].month.value;
mnth = mnth1;
mnth++;

if(mnth < 10)
{
  mnth = '0'+mnth;
}
if(str < 10)
{
    str = '0'+str;
}
year = document.forms[0].year.value;
dateStr = str+"-"+mnth+"-"+year;

dateStr = trim(dateStr);

//document.forms[1].dateField.value = dateStr;
//window.opener.form1.submit();
if(document.forms[1].aaa.value == 1)
    window.opener.form1.dateOd.value = dateStr;
else if(document.forms[1].aaa.value == 2)  
    window.opener.form1.dateDo.value = dateStr;
    
    window.close();    

}//setDate()

/**
* The function removes spaces from the selected date.
*/

function trim(str) {

res="";

for(var i=0; i< str.length; i++) {
   if (str.charAt(i) != " ") {
     res +=str.charAt(i);
  }
}
  
return res;

}//trim()

/**
* The method to get the Month name given the Month number of the year.
*/

function getMonthName(mnth) {

if (mnth == 0) {
  name = "styczeń";
}else if(mnth==1) {
  name = "luty";
}else if(mnth==2) {
  name = "marzec";
}else if(mnth==3) {
  name = "kwiecień";
}else if(mnth==4) {
  name = "maj";
} else if(mnth==5) {
  name = "czerwiec";
} else if(mnth==6) {
  name = "lipiec";
} else if(mnth==7) {
  name = "sierpień";
} else if(mnth==8) {
  name = "wrzesień";
} else if(mnth==9) {
  name = "październik";
} else if(mnth==10) {
  name = "listopad";
} else if(mnth==11) {
  name = "grudzień";
}

return name;

}//getMonthName()

/**
* Get the number of days in the month based on the year.
*/

function getNoOfDaysInMnth(mnth,yr) {

rem = yr % 4;

if(rem ==0) {
   leap = 1;
} else {
  leap = 0;
}

noDays=0;

if ( (mnth == 1) || (mnth == 3) || (mnth == 5) ||
      (mnth == 7) || (mnth == 8) || (mnth == 10) ||
      (mnth == 12)) {
  noDays=31;
} else if (mnth == 2) {
           noDays=28+leap;
        } else {
           noDays=30;
}

//alert(noDays);
return noDays;

      
}//getNoOfDaysInMnth()
  
/**
* The function to reset the date values in the buttons of the
* slots.
*/

function fillDates(dayOfWeek1,noOfDaysInmnth) {

for(var i=1; i<43; i++) {
   str = "s"+i;
   document.forms[0].elements[str].value="   ";
}


startSlotIndx = dayOfWeek1;
slotIndx = startSlotIndx;

for(var i=1; i<(noOfDaysInmnth+1); i++) {
  slotName = "s"+slotIndx;

  val="";
  if (i<10) {
    val = " "+i+" ";
  } else {
    val = i;
  }

  document.forms[0].elements[slotName].value = val;
  slotIndx++;
}
  
}//fillDates()


/**
* The function that is called at the time of loading the page.
* This function displays Today's date and also displays the
* the calendar of the current month.
*/

function thisMonth() {

  dt = new Date();
  mnth  = dt.getMonth(); /* 0-11*/
  dayOfMnth = dt.getDate(); /* 1-31*/
  dayOfWeek = dt.getDay(); /*0-6*/
  yr = dt.getFullYear(); /*4-digit year*/

  //alert("month:"+(mnth+1)+":dayofMnth:"+dayOfMnth+":dayofweek:"+dayOfWeek+":year:"+yr);

  mnthName = getMonthName(mnth)+ " ";
  document.forms[0].month.value = mnth;
  document.forms[0].year.value = yr;
  document.forms[0].currMonth.value = mnth;
  document.forms[0].currYear.value = yr;
  
  document.forms[0].monthYear.value = mnthName+yr;
  //document.forms[1].dateField.value = (mnth+1)+"/"+dayOfMnth+"/"+yr;

  startStr = (mnth+1)+"/1/"+yr;
  dt1 = new Date(startStr);
  dayOfWeek1 = dt1.getDay(); /*0-6*/

  noOfDaysInMnth = getNoOfDaysInMnth(mnth+1,yr);
  fillDates(dayOfWeek1+1,noOfDaysInMnth);


}//thisMonth()

/**
* The function that will be used to display the calendar of the next month.
*/

function nextMonth() {

var currMnth = document.forms[0].month.value;
currYr = document.forms[0].year.value;

if (currMnth == "11") {
    nextMnth = 0;
    nextYr = currYr;
    nextYr++;
} else {
   nextMnth=currMnth;
   nextMnth++;
   nextYr = currYr;
}

mnthName = getMonthName(nextMnth);
document.forms[0].month.value=nextMnth;
document.forms[0].year.value=nextYr;
document.forms[0].monthYear.value= mnthName+" "+nextYr;

str = (nextMnth+1)+"/1/"+nextYr;
dt = new Date(str);
dayOfWeek = dt.getDay();

noOfDays = getNoOfDaysInMnth(nextMnth+1,nextYr);

fillDates(dayOfWeek+1,noOfDays);


}//nextMonth()

/**
* The method to display the calendar of the previous month.
*/

function prevMonth() {

var currMnth = document.forms[0].month.value;
currYr = document.forms[0].year.value;

if (currMnth == "0") {
    prevMnth = 11;
    prevYr = currYr;
    prevYr--;
} else {
   prevMnth=currMnth;
   prevMnth--;
   prevYr = currYr;
}

str = (prevMnth+1)+"/1/"+prevYr;
dt = new Date(str);
dayOfWeek = dt.getDay();

/***********************************************
  * Remove the comment if do not want the user to
  * go to any previous month than this current month.
  ***********************************************/

/*

runningMonth = document.forms[0].currMonth.value;
rMonth=runningMonth;
rMonth++;
runningYear = document.forms[0].currYear.value;
rYear=runningYear;

str = (rMonth)+"/1/"+rYear;
dt1 = new Date(str);

if (dt.valueOf() < dt1.valueOf()) {
   alert('Cannot Go Before Current Month');
   return;
}

*/

/**************************************************
* End of comment
**************************************************/

mnthName = getMonthName(prevMnth);
document.forms[0].month.value=prevMnth;
document.forms[0].year.value=prevYr;
document.forms[0].monthYear.value= mnthName+" "+prevYr;

noOfDays = getNoOfDaysInMnth(prevMnth+1,prevYr);
fillDates(dayOfWeek+1,noOfDays);

}//prevMonth()

</script>
<table border=0 align=center width="100%">
<tr>
<td align="center">
<form>
    <!-- Hidden fields --->

    <input type=hidden name=month value="">
    <input type=hidden name=year value="">
    <input type=hidden name=currMonth value="">
    <input type=hidden name=currYear value="">


    <!-- End of Hidden fields --->

    <p>
     <input type="button" name="prev" onclick="prevMonth()"
     value="<<" class="BUTTON">
     <input type="text" size="15" name="monthYear"
     value="" readonly="1" class="text">
     <input type="button" name="next" onclick="nextMonth()" value=">>" class="BUTTON">
   </p>
    
    <table  align=center border="0" bordercolor="#f0f0f0" cellpadding="1" cellspacing="1"
    width="100%">
        <tr bgcolor="#c4c4c4" align="center">
            <td width="14%"><font  class="jeden">NI</font></td>
            <td width="14%"><font  class="jeden">PO</font></td>
            <td width="14%"><font  class="jeden">WT</font></td>
            <td width="14%"><font  class="jeden">ŚR</font></td>
            <td width="14%"><font  class="jeden">CZ</font></td>
            <td width="14%"><font  class="jeden">PI</font></td>
            <td width="14%"><font  class="jeden">SO</font></td>
        </tr>
        <tr>
            <td align="center" width="14%"><input type="button"
            onclick="setDate(this.value);"
     name="s1" value=" 1 " class="BUTTON"></td>
            <td align="center" width="14%"><input type="button"
            onclick="setDate(this.value);"
            name="s2" value=" 2 " class="BUTTON"></td>
            <td align="center" width="14%"><input type="button"
            onclick="setDate(this.value);"
            name="s3" value=" 3 " class="BUTTON"></td>
            <td align="center" width="14%"><input type="button"
            onclick="setDate(this.value);"
            name="s4" value=" 4 " class="BUTTON"></td>
            <td align="center" width="14%"><input type="button"
            onclick="setDate(this.value);"
            name="s5" value=" 5 " class="BUTTON"></td>
            <td align="center" width="15%"><input type="button"
            onclick="setDate(this.value);"
            name="s6" value=" 6 " class="BUTTON"></td>
            <td align="center" width="15%"><input type="button"
            onclick="setDate(this.value);"
            name="s7" value=" 7 " class="BUTTON"></td>
        </tr>
        <tr>
            <td align="center" width="14%"><input type="button"
            onclick="setDate(this.value);"
            name="s8" value=" 8 " class="BUTTON"></td>
            <td align="center" width="14%"><input type="button"
            onclick="setDate(this.value);"
            name="s9" value=" 9 " class="BUTTON"></td>
            <td align="center" width="14%"><input type="button"
            onclick="setDate(this.value);"
            name="s10" value="10" class="BUTTON"></td>
            <td align="center" width="14%"><input type="button"
            onclick="setDate(this.value);"
            name="s11" value="11" class="BUTTON"></td>
            <td align="center" width="14%"><input type="button"
            onclick="setDate(this.value);"
            name="s12" value="12" class="BUTTON"></td>
            <td align="center" width="15%"><input type="button"
            onclick="setDate(this.value);"
            name="s13" value="13" class="BUTTON"></td>
            <td align="center" width="15%"><input type="button"
            onclick="setDate(this.value);"
            name="s14" value="14" class="BUTTON"></td>
        </tr>
        <tr>
            <td align="center" width="14%"><input type="button"
            onclick="setDate(this.value);"
            name="s15" value="15" class="BUTTON"></td>
            <td align="center" width="14%"><input type="button"
            onclick="setDate(this.value);"
            name="s16" value="16" class="BUTTON"></td>
            <td align="center" width="14%"><input type="button"
            onclick="setDate(this.value);"
            name="s17" value="17" class="BUTTON"></td>
            <td align="center" width="14%"><input type="button"
            onclick="setDate(this.value);"
            name="s18" value="18" class="BUTTON"></td>
            <td align="center" width="14%"><input type="button"
            onclick="setDate(this.value);"
            name="s19" value="19" class="BUTTON"></td>
            <td align="center" width="15%"><input type="button"
            onclick="setDate(this.value);"
            name="s20" value="20" class="BUTTON"></td>
            <td align="center" width="15%"><input type="button"
            onclick="setDate(this.value);"
            name="s21" value="21" class="BUTTON"></td>
        </tr>
        <tr>
            <td align="center" width="14%"><input type="button"
            onclick="setDate(this.value);"
            name="s22" value="22" class="BUTTON"></td>
            <td align="center" width="14%"><input type="button"
            onclick="setDate(this.value);"
            name="s23" value="23" class="BUTTON"></td>
            <td align="center" width="14%"><input type="button"
            onclick="setDate(this.value);"
            name="s24" value="24" class="BUTTON"></td>
            <td align="center" width="14%"><input type="button"
            onclick="setDate(this.value);"
            name="s25" value="25" class="BUTTON"></td>
            <td align="center" width="14%"><input type="button"
            onclick="setDate(this.value);"
            name="s26" value="26" class="BUTTON"></td>
            <td align="center" width="15%"><input type="button"
            onclick="setDate(this.value);"
            name="s27" value="27" class="BUTTON"></td>
            <td align="center" width="15%"><input type="button"
            onclick="setDate(this.value);"
            name="s28" value="28" class="BUTTON"></td>
        </tr>
        <tr>
            <td align="center"><input type="button" name="s29"
            onclick="setDate(this.value);"
            value="29" class="BUTTON"></td>
            <td align="center"><input type="button" name="s30"
            onclick="setDate(this.value);"
            value="30"  class="BUTTON"></td>
            <td align="center"><input type="button" name="s31"
            onclick="setDate(this.value);"
            value="   "  class="BUTTON"></td>
            <td align="center"><input type="button" name="s32"
            onclick="setDate(this.value);"
            value="   "  class="BUTTON"></td>
            <td align="center"><input type="button" name="s33"
            onclick="setDate(this.value);"
            value="   " class="BUTTON"></td>
            <td align="center"><input type="button" name="s34"
            onclick="setDate(this.value);"
            value="   " class="BUTTON"></td>
            <td align="center"><input type="button" name="s35"
            onclick="setDate(this.value);"
            value="   " class="BUTTON"></td>
        </tr>
        <tr>
            <td align="center"><input type="button" name="s36"
            onclick="setDate(this.value);"
            value="   " class="BUTTON"></td>
            <td align="center"><input type="button" name="s37"
            onclick="setDate(this.value);"
            value="   " class="BUTTON"></td>
            <td align="center"><input type="button" name="s38"
            onclick="setDate(this.value);"
            value="   " class="BUTTON"></td>
            <td align="center"><input type="button" name="s39"
            onclick="setDate(this.value);"
            value="   " class="BUTTON"></td>
            <td align="center"><input type="button" name="s40"
            onclick="setDate(this.value);"
            value="   " class="BUTTON"></td>
            <td align="center"><input type="button" name="s41"
            onclick="setDate(this.value);"
            value="   " class="BUTTON"></td>
            <td align="center"><input type="button" name="s42"
            onclick="setDate(this.value);"
            value="   " class="BUTTON"></td>
        </tr>
    </table>
</form>
<form>
  <input type = hidden name ="aaa" value = "<?php print("$pole"); ?>" >
</form>
</td>
</tr>
</table>



</body>

</html>
E-d
Wątpie żeby komuś chciało się taki kod wielki analizować. Ale zdaje mi się że to przez to że w ff masz wyłączone wyskakiwanie okienek.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.