Click to See Complete Forum and Search --> : month and date


dummyagain
May 26th, 2005, 05:59 AM
I want to make 3 lists for the users to choose the date....
every time i choose the month... it will refresh the page.. and show the appropriate number of dates in that month...but however.. the month will also change back to "January".. I had tried several ways to solve this...but still fail.... so can anybody suggest me some advices?

Thank you


<form name="form1" method="post" action="">
Year :
<select name="year" size="1">
<option value="2005">2005</option>
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
</select>
Month:
<select name="month" size="1" onChange="submit()">
<option value="01" >January</option>
<option value="02">February</option>
<option value="03">March</option>
<option value="04">April</option>
<option value="05">May</option>
<option value="06">June</option>
<option value="07">July</option>
<option value="08">August</option>
<option value="09">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
Day:
<select name="day" size="1">
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
<option value="05">5</option>
<option value="06">6</option>
<option value="07">7</option>
<option value="08">8</option>
<option value="09">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<? if ($month != "02"){ ?>
<option value="29">29</option>
<option value="30">30</option>
<? } ?>
<? if ($month=="01" || $month=="03" || $month=="05" || $month=="07" || $month=="08" || $month=="10" || $month=="12"){?>
<option value="31">31</option> <? } ?>
</select>
<input name="Go" type="submit" id="Go" value="Go">
</form>

PramodsNair
May 27th, 2005, 07:37 AM
instead of submitting the form on the OnChange event of combo go for a VBScript or JavaScript and call it from Onchange. When you submit the page the entire page refreshes and unless you use a serverside script or a cookie to store the current local page state you will lose it. That is waht is happening with the Month Combo.


I think the below given code will be of help to you

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

Month:
<select name="month" size="1" onChange="s(this.form)">
<option value="01" >January</option>
<option value="02">February</option>
<option value="03">March</option>
<option value="04">April</option>
<option value="05">May</option>
<option value="06">June</option>
<option value="07">July</option>
<option value="08">August</option>
<option value="09">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>

<select name="day" size="1">
</select>


<input name="Go" type="submit" id="Go" value="Go" >
</form>
<script>
//Author : Pramod S Nair
//Make any changes as you wish
var nd
function s(f)
{
Umn = f.month.value
//alert (Umn)
switch(Umn)
{
case "01" :
case "03":
case "05":
case "07" :
case "08":
case "10":
case "12" :
nd = 31
break
case "04":
case "06":
case "09" :
case "11":
nd = 30
break
case "02":
nd=28 // for handling a leap year write a function based on the year value and check if it's perfectly divisible by 400,4 and not by 100
break
}
//clear combo
if (!(f.day.length <=0 ))
{
while(f.day.length >0)
{
f.day.remove(0)
}
}
//now populate the day combo
for (i=1;i<=nd;i++)
{
var op1 = document.createElement("OPTION")
op1.text = i
op1.value =i
f.day.add(op1)
}
}

</script>