Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Formularz do wprowadzania daty
Forum PHP.pl > Forum > Przedszkole
iwi1
Witam.
Jak zrobić formularz, aby data zawsze była wprowadzana w jednakowy sposób, żeby później przekazać do MySQLa.
  1. <form action="dodano.php" method="post">
  2. Data zapłaty [RRRR-MM-DD]:<br />
  3. <input type="text" name="Data" /><br />
  4. Kwota:<br />
  5. <input type="text" name="Kwota" /><br />
  6. Opis:<br />
  7. <div><textarea name="Opis" rows="1" cols="125">wpisz opis operacji...</textarea></div><br />
  8. <input type="submit" value="dodaj" />
  9. </form>


W ten sposób można wprowadzić datę nawet 2009-22-45 (z tym ze do MySQL zapiszą się zera, ale ten formularz go przyjmie.
Fajnie gdyby po wpisaniu 4 cyfr automatycznie wskoczylaby kreska rozdzielajaca rok od miesiaca
albo moze macie jakies gotowe rozwiazania z pobieraniem przez kalendarz z JAVASkryptu
Rymar
jeżeli chciałbyś z js to masz np. w jQuery datepicker LINK, można dostosować sposób wyświetlania daty do swoich potrzeb, zawsze możesz zrobić trzy pola select z dniem, miesiącem i rokiem i przy zapisie do bazy dawać ' - ' tam gdzie trzeba
Robert1985
A nie lepiej zrobić to jak na wielu stronach comboboxami np:?
  1. <form action="skrypt.php" method="POST">
  2.  
  3. <select name="rok">
  4. <option value = "2000">2000
  5. <option value = "2001">2001
  6. <option value = "2002">2002
  7. <option value = "2003">2003
  8. <option value = "2004">2004
  9. <option value = "2005">2005
  10. <option value = "2006">2006
  11. <option value = "2007">2007
  12. <option value = "2008">2008
  13. <option value = "2009">2009
  14. <option value = "2010">2010
  15. <option value = "2011">2011
  16. </select>
  17.  
  18. <select name="miesiac">
  19. <option value="01">styczeń
  20. <option value="02">luty
  21. <option value="03">marzec
  22. <option value="04">kwiecień
  23. <option value="05">maj
  24. <option value="06">czerwiec
  25. <option value="07">lipiec
  26. <option value="08">sierpień
  27. <option value="09">wrzesień
  28. <option value="10">październik
  29. <option value="11">listopad
  30. <option value="12">grudzień
  31. </select>
  32.  
  33. <select name="dzien">
  34. <option value="01">01
  35. <option value="02">02
  36. <option value="03">03
  37. <option value="04">04
  38. <option value="05">05
  39. <option value="06">06
  40. <option value="07">07
  41. <option value="08">08
  42. <option value="09">09
  43. <option value="10">10
  44. <option value="11">11
  45. <option value="12">12
  46. <option value="13">13
  47. <option value="14">14
  48. <option value="15">15
  49. <option value="16">16
  50. <option value="17">17
  51. <option value="18">18
  52. <option value="19">19
  53. <option value="20">20
  54. <option value="21">21
  55. <option value="22">22
  56. <option value="23">23
  57. <option value="24">24
  58. <option value="25">25
  59. <option value="26">26
  60. <option value="27">27
  61. <option value="28">28
  62. <option value="29">29
  63. <option value="30">30
  64. <option value="31">31
  65. </select>
  66. <input type="submit" value="Data" />
  67. </form>


i skrypt:
  1. $rok = $_POST['rok'];
  2. $miesiac = $_POST['miesiac'];
  3. $dzien = $_POST['dzien'];
  4.  
  5. $data_for_sql = $rok . "-" . $miesiac . "-" . $dzien;
  6. echo $data_for_sql;
iwi1
dzięki wielkie - o coś takiego mi chodziło. Już zaimplementowałem i pozmieniałem dane i działa.
Zastanawiam się jeszcze jak to zrobić, żeby obok pojawił się przycisk "USTAW DZISIEJSZĄ DATĘ" ale pewnie tym sposobem się nie da.
Magic Hereos
Zrób na dole "Wyślij z dzisiejszą datą" + jako wartość hidden i w skrypcie dodaj if($_POST['dzisiejsza'] == 1), pobierz datę, oraz wyślij do mysql.
Robert1985
Zamiast takiego rozwiązania można również zrobić tak, nie dodaje się wtedy dodatkowego guzika. Oczywiście proponowałbym wygenerować całość PHP za pomocą pętli ,ale to już twoja broszka.
  1. <form action="skrypt.php" method="POST">
  2.  
  3. <select name="rok">
  4. <optgroup label="Dziś">
  5. <option selected="selected" value = "<?php echo date(Y) ?>"><?php echo date(Y) ?>
  6. </optgroup>
  7. <optgroup label=" Nie Dziś">
  8. <option value = "2000">2000
  9. <option value = "2001">2001
  10. <option value = "2002">2002
  11. <option value = "2003">2003
  12. <option value = "2004">2004
  13. <option value = "2005">2005
  14. <option value = "2006">2006
  15. <option value = "2007">2007
  16. <option value = "2008">2008
  17. <option value = "2009">2009
  18. <option value = "2010">2010
  19. <option value = "2011">2011
  20. </optgroup>
  21. </select>
  22.  
  23. <select name="miesiac">
  24. <optgroup label="Dziś">
  25. <option selected="selected" value = "<?php echo date(m) ?>"><?php echo date(m) ?>
  26. </optgroup>
  27. <optgroup label=" Nie Dziś">
  28. <option value="01">01
  29. <option value="02">02
  30. <option value="03">03
  31. <option value="04">04
  32. <option value="05">05
  33. <option value="06">06
  34. <option value="07">07
  35. <option value="08">08
  36. <option value="09">09
  37. <option value="10">10
  38. <option value="11">11
  39. <option value="12">12
  40. </optgroup>
  41. </select>
  42.  
  43. <select name="dzien">
  44. <optgroup label="Dziś">
  45. <option selected="selected" value = "<?php echo date(d) ?>"><?php echo date(d) ?>
  46. </optgroup>
  47. <optgroup label=" Nie Dziś">
  48. <option value="01">01
  49. <option value="02">02
  50. <option value="03">03
  51. <option value="04">04
  52. <option value="05">05
  53. <option value="06">06
  54. <option value="07">07
  55. <option value="08">08
  56. <option value="09">09
  57. <option value="10">10
  58. <option value="11">11
  59. <option value="12">12
  60. <option value="13">13
  61. <option value="14">14
  62. <option value="15">15
  63. <option value="16">16
  64. <option value="17">17
  65. <option value="18">18
  66. <option value="19">19
  67. <option value="20">20
  68. <option value="21">21
  69. <option value="22">22
  70. <option value="23">23
  71. <option value="24">24
  72. <option value="25">25
  73. <option value="26">26
  74. <option value="27">27
  75. <option value="28">28
  76. <option value="29">29
  77. <option value="30">30
  78. <option value="31">31
  79. </optgroup>
  80. </select>
  81. <input type="submit" value="Data" />
  82. </form>
iwi1
Cytat(Robert1985 @ 19.09.2009, 00:21:17 ) *
Oczywiście proponowałbym wygenerować całość PHP za pomocą pętli ,ale to już twoja broszka.

a moge wiedziec po co? - czy po to żeby np nie zrobić 31 lutego?
Tak ladnie dziala - bardzo dziękuję za pomoc.
skowron-line
Cytat(iwi1 @ 19.09.2009, 22:39:49 ) *
a moge wiedziec po co? - czy po to żeby np nie zrobić 31 lutego?

A jak będziesz musiał lata od 1900 - 2009 pokazać to też wszystko z palca będzie questionmark.gif i jak w takiej sytuacji jak teraz zrobisz zaznaczenie konkretnej daty questionmark.gif
cojack
Proste jak budowa cepa, tak jak pisali wyżej dobrym sposobem jest select, how to &%$@ make it? it's very simple how simple it is is so simple simple simple bit haha.gif

  1. $od_roku = '1900';
  2. $do_roku = '2007';
  3.  
  4. for ($od_roku; $i <= $do_roku; $od_roku++) {
  5. echo '<option>' . $od_roku . '</option>'; // value w option używamy jeżeli ma być inne niż anchor
  6. }
  7.  
  8. $b = cal_info(0);
  9. foreach ($b["months"] as $k => $v){
  10. echo '<option value=' . $k .'>' . $v . '</option>';
  11. }
  12.  
  13. // a teraz dni
  14.  
  15. for ($i = 1; $i <= 31; $i++) {
  16. echo '<option>' . $i . '</option>';
  17. }


A teraz zwyczajnie sprawdźmy czy dni pasują do miesięcy:

  1. $days = cal_days_in_month(CAL_GREGORIAN, $_POST['months'], $_POST['year']);
  2. if(!in_array((int)$_POST['day'],$days))
  3. die('Die bitches!');
matyslubin
Witam w tym skrypcie jest jakiś błąd. Mianowicie lata lecą od 1900 do nieskończoności. Nie wiem czy to tylko u mnie tak wygląda questionmark.gif Jestem początkujący więc nie wiem jak to poprawić. Z góry dzięki za wszelką pomoc. smile.gif


  1.  
  2. $od_roku = '1900';
  3. $do_roku = '2007';
  4.  
  5. for ($od_roku; $i <= $do_roku; $od_roku++) {
  6. echo '<option>' . $od_roku . '</option>'; // value w option używamy jeżeli ma być inne niż anchor
  7. }
  8.  



Jus sobie poradziłem, tak myślałem ze to pierdoła winksmiley.jpg ... wstydnis.gif
Powinno być:
  1. $od_roku = '1900';
  2. $do_roku = '2010';
  3.  
  4. for ($od_roku; $od_roku <= $do_roku; $od_roku++) {
  5. echo '<option>' . $od_roku . '</option>'; // value w option używamy jeżeli ma być inne niż anchor
  6. }
  7.  
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.