Въпрос за <select>

vankich

Registered
Как мога да направя 2 <select> менюта за зависят едно от друго. Ето един нагледен пример, за да ме разберете.

Код:
<select>
<option>Януари</option>
<option>Февруари</option>
<option>Март</option>
<option>Април</option>
....
</select>

Код:
<select>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
....
<option>29</option>
<option>30</option>
</select>

Koгато селектирам месец Януари за второто меню да имам 30 дена, а когато селектирам Февруари да има 28 или 29 в зависимост от годината. Ако селектирам Март да има 31 дена и така.. за всички месеци.
 
Ами в тоя раздел с javascript само става , но не съм навътре с тез работи точно.Другия вариянт е PHP
 
Точно, каквото ти трябва, с определяне на високосна година.btw януари има 31 дни :lol:

Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
</head>
<script type="text/javascript" language="javascript">

function checkYear() { 
var d=new Date();
var year=d.getFullYear();
return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) ? true : false;
}

function changer(s){
switch(s.value){
	case "1":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='visible';
	return true;
	case "2":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility=(checkYear())?'visible':'hidden';
	document.getElementById('option30').style.visibility='hidden';
	document.getElementById('option31').style.visibility='hidden';
	return true;
	case "3":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='visible';
	return true;
	case "4":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='hidden';
	return true;
	case "5":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='visible';
	return true;
	case "6":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='hidden';
	return true;
	case "7":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='visible';
	return true;
	case "8":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='visible';
	return true;
	case "9":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='hidden';
	return true;
	case "10":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='visible';
	return true;
	case "11":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='hidden';
	return true;
	case "12":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='visible';
	return true;
	default:return false;
	}
}
</script>
<body>
<select onchange="changer(this);">
<option value="" selected="selected">---</option>
<option value="1">Януари</option>
<option value="2">Февруари</option>
<option value="3">Март</option>
<option value="4">Април</option>
<option value="5">Май</option>
<option value="6">Юни</option>
<option value="7">Юли</option>
<option value="8">Август</option>
<option value="9">Септември</option>
<option value="10">Октомври</option>
<option value="11">Ноември</option>
<option value="12">Декември</option>
</select><br />
<select>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
<option>24</option>
<option>25</option>
<option>26</option>
<option>27</option>
<option id="option28">28</option>
<option id="option29">29</option>
<option id="option30">30</option>
<option id="option31">31</option>
</select>
</body>
</html>
 
koko5 каза:
Точно, каквото ти трябва, с определяне на високосна година.btw януари има 31 дни :lol:

Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
</head>
<script type="text/javascript" language="javascript">

function checkYear() { 
var d=new Date();
var year=d.getFullYear();
return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) ? true : false;
}

function changer(s){
switch(s.value){
	case "1":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='visible';
	return true;
	case "2":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility=(checkYear())?'visible':'hidden';
	document.getElementById('option30').style.visibility='hidden';
	document.getElementById('option31').style.visibility='hidden';
	return true;
	case "3":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='visible';
	return true;
	case "4":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='hidden';
	return true;
	case "5":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='visible';
	return true;
	case "6":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='hidden';
	return true;
	case "7":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='visible';
	return true;
	case "8":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='visible';
	return true;
	case "9":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='hidden';
	return true;
	case "10":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='visible';
	return true;
	case "11":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='hidden';
	return true;
	case "12":document.getElementById('option28').style.visibility='visible';
	document.getElementById('option29').style.visibility='visible';
	document.getElementById('option30').style.visibility='visible';
	document.getElementById('option31').style.visibility='visible';
	return true;
	default:return false;
	}
}
</script>
<body>
<select onchange="changer(this);">
<option value="" selected="selected">---</option>
<option value="1">Януари</option>
<option value="2">Февруари</option>
<option value="3">Март</option>
<option value="4">Април</option>
<option value="5">Май</option>
<option value="6">Юни</option>
<option value="7">Юли</option>
<option value="8">Август</option>
<option value="9">Септември</option>
<option value="10">Октомври</option>
<option value="11">Ноември</option>
<option value="12">Декември</option>
</select><br />
<select>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
<option>24</option>
<option>25</option>
<option>26</option>
<option>27</option>
<option id="option28">28</option>
<option id="option29">29</option>
<option id="option30">30</option>
<option id="option31">31</option>
</select>
</body>
</html>

Това е точно каквото търся, само дето не работи :) и... ох да Януари има 31 дена :)
 
alex95_bg_2 каза:
при мен работи
пробвах го :wink:

Е добре.. само Copy и Paste... и не работи при мен. Нищо не съм пипал по кода, че да се прецака нещо. Всички месеци имат 31 дни при мен....
 
koko5 каза:
IE има някакъв бъг-с ФФ работи.
За IE HE става-пробвах и с innerHTML....

С Опера не работи. За другите браузъри не съм проблвал, ма като не работи под ИЕ/Мозила/Опера едновременно, значи иска преработване :)

Някой може ли да помогне моля?
 

Back
Горе