Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML] Formularze pole data
Forum PHP.pl > Forum > Przedszkole
nowy16
Witajcie. Mam pewien problem. Zrobiłem formularz na stronie w, którym trzeba podać datę godzinę. Oczywiście teraz to wygląda tak, że jest pole input i napis jak trzeba napisać tę datę. Jak zrobić oddzielnie listę rozwijaną dla dzień, miesiąc, rok aby po zaznaczeniu data została zapisana do jednej rubryce tabeli ?
AlexDeLarge
  1. $sql = "INSERT INTO tabela (`data`) VALUES ( '{$_POST['rok']}-{$_POST['miesiac']}-{$_POST['dzien']} {$_POST['godzina']}:{$_POST['minuta']}')";
celbarowicz
  1. <html>
  2. <head>
  3.  
  4. <script language="javascript" type="text/javascript">
  5.  
  6.  
  7.  
  8. function resmies(){ document.getElementById('miesiac').value='';
  9. document.getElementById('dzien').value=''; }
  10.  
  11.  
  12.  
  13.  
  14. function dlugim(mm) { r=document.getElementById('rok').value;
  15.  
  16. dd=0;
  17. if ((r%4)==0){dd=1;}
  18.  
  19. if ((mm==01)||(mm==03)||(mm==05)||(mm==07)||(mm==08)||(mm==10)||(mm==12)){dn=31;document.getElementById('dzien').length=31;
  20.  
  21. document.getElementById('dzien').options['28'].value=29;
  22. document.getElementById('dzien').options['28'].text=29;
  23.  
  24. document.getElementById('dzien').options['29'].value=30;
  25. document.getElementById('dzien').options['29'].text=30;
  26.  
  27. document.getElementById('dzien').options['30'].value=31;
  28. document.getElementById('dzien').options['30'].text=31;
  29.  
  30.  
  31. }
  32. if ((mm==02)&&(dd===1)) {dn=29;document.getElementById('dzien').length=dn; document.getElementById('dzien').options['28'].value=29;
  33. document.getElementById('dzien').options['28'].text=29;
  34.  
  35.  
  36.  
  37.  
  38. }
  39. if ((mm==02)&&(dd!==1)) {dn=28;document.getElementById('dzien').length=dn;}
  40.  
  41.  
  42. if ((mm==04)||(mm==06)||(mm==09)||(mm==11)){dn=30;document.getElementById('dzien').length=30;
  43. document.getElementById('dzien').options['28'].value=29;
  44. document.getElementById('dzien').options['28'].text=29;
  45.  
  46. document.getElementById('dzien').options['29'].value=30;
  47. document.getElementById('dzien').options['29'].text=30;
  48.  
  49.  
  50.  
  51. }
  52. }
  53.  
  54. function pobierzdate(){ r=document.getElementById('rok').value;
  55. m=document.getElementById('miesiac').value;
  56. dz=document.getElementById('dzien').value;
  57. if (dz.length==1) {dz="0"+dz;}
  58. dat=r+"-"+m+"-"+dz;
  59. alert (dat);
  60.  
  61. }
  62. </script>
  63.  
  64. </head>
  65.  
  66. <body>
  67.  
  68. <SELECT name="rok" size="1"onchange="resmies();" >
  69. <option value="2009">2009</option>
  70. <option value="2010">2010</option>
  71. <option value="2011">2011</option>
  72. <option value="2012">2012</option>
  73. <option value="2013">2013</option>
  74. <option value="2014">2014</option>
  75. <option value="2015">2015</option>
  76. <select>
  77.  
  78. <SELECT name="miesiac" size="1" onchange="dlugim(this.value);">
  79. <option name="m1" value="01">01</option>
  80. <option name="m2" value="02">02</option>
  81. <option name="m3" value="03">03</option>
  82. <option name="m4" value="04">04</option>
  83. <option name="m5" value="05">05</option>
  84. <option name="m6" value="06">06</option>
  85. <option name="m7" value="07">07</option>
  86. <option name="m8" value="08">08</option>
  87. <option name="m9" value="09">09</option>
  88. <option name="m10" value="10">10</option>
  89. <option name="m11" value="11">11</option>
  90. <option name="m12" value="12">12</option>
  91.  
  92. <select>
  93. <SELECT name="dzien" size="1" value=""> <?PHP
  94. $dm=31;
  95. FOR ($ild=1;$ild<=$dm;$ild++) {
  96. if($ild<10) {$ild_zero="0";$ild_zero.=$ild;}else{$ild_zero=$ild;}
  97.  
  98. print("<option value=\"$ild_zero\">$ild_zero\n");
  99. }
  100.  
  101. ?>
  102.  
  103. <select>
  104.  
  105.  
  106. <br>
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. </body>
  115. </html>
  116.  
  117.  
  118.  
  119.  
krispak
Nie lepiej zaimplementowac np cos takiego..
sadistic_son
Ale po co tyle kombinacji?
  1. echo'<select name="year">';
  2. for($y=1980;$y<=2010;$y++){ //petla tworzaca lata
  3. echo '<option value="'$y.'">'.$y.'</option>';
  4. }
  5. echo '</select> - ';
  6. echo'<select name="month">';
  7. for($m=0;$m<=12;my++){ //petla tworzaca miesiace
  8. echo '<option value="'$m.'">'.$m.'</option>';
  9. }
  10. echo '</select> - ';
  11. echo'<select name="day">';
  12. for($d=0;$d<=31;$d++){ //petla tworzaca dni
  13. echo '<option value="'$d.'">'.$d.'</option>';
  14. }
  15. echo '</select>';
Tak samo robisz z godzinami i minutami. Zczytanie z post i wpisanie do bazy wyglada tak:
  1. $date_time=$_POST['year'].'-'.$_POST['month'].'-'.$_POST['day'].' '.$_POST['hour'].':'.$_POST['minute'];
  2.  
  3. $sql="INSERT INTO tabela VALUES('".$date_time."')";

celbarowicz
sadistic_son ,a gdzie walidacja?
Czyli luty zawsze może mieć 31 dni bez względu czy rok jest przestępny czy nie?
Wszystkie pozostałe miesiące też po 31?
Klient może wpisywać do bazy złe dane?
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.