Witam mam problem ze zrobieniem daty urodzenia, męczę się z tym już 2 tygodnie i nadal nie wiem jak to zrobić.
Mógłby ktoś dla mnie to zrobić z html jak i php, mysql sam się zajmę. Bardzo bym prosił :)
Napisz konkretnie co chcesz osiągnąć (to, co dałeś jest bardzo ogólne, zdecydowanie za mało, żeby coś napisać sensownego). Poza tym - tak, jak napisał @Patryk27 - pokaż co masz zrobione, w jaki sposób chcesz to zrobić oraz w którym konkretnie miejscu utknąłeś.
- Rejestracja:ponad 7 lat
- Ostatnio:ponad 6 lat
- Postów:26
$wiek_d = $_POST['wiek_d'];
$wiek_m = $_POST['wiek_m'];
wiek_r = $_POST['wiek_r'];
$_SESSION['fr_wiek_d'] = $wiek_d;
$_SESSION['fr_wiek_m'] = $wiek_m;
$_SESSION['fr_wiek_r'] = $wiek_r;
<label for="data_urodzenia">Data urodzenia: <br/></label>
<select value = '<? $_SESSION['fr_wiek_d']?>' name="data_urodzenia">
<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>28</option>
<option>29</option>
<option>30</option>
<option>31</option>
</select>
<select value = '<? $_SESSION['fr_wiek_m']?>' name="data_urodzenia">
<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>
</select>
<select value = '<? $_SESSION['fr_wiek_r']?>' name="data_urodzenia">
<option>2010</option>
<option>2009</option>
<option>2008</option>
<option>2007</option>
<option>2006</option>
<option>2005</option>
<option>2004</option>
<option>2003</option>
<option>2002</option>
<option>2001</option>
<option>2000</option>
<option>1999</option>
<option>1998</option>
<option>1997</option>
<option>1996</option>
<option>1995</option>
<option>1994</option>
<option>1993</option>
<option>1992</option>
<option>1991</option>
</select>
echo "<br/>Wiek: ".$_SESSION['wiek_d'];
Teraz gdy chcę to wywołać w innym pliku. To wyskakuje błąd:
"Undefined index: wiek_d"

- Rejestracja:około 9 lat
- Ostatnio:około 3 lata
- Lokalizacja:Polanów
- Postów:151
Żeby to było widoczne w innym/innych pliku/plikach to musisz dopisać w nim/nich session_start();
. Ponadto musisz mieć chyba jakiś
<form method="post" action="other_file.php">
...
</form>
, aby móc odebrać dane wcześniej wysłane.
- Rejestracja:ponad 7 lat
- Ostatnio:ponad 6 lat
- Postów:26
<form method="post" action="register.php">
<?php
echo "<p>Witaj ".$_SESSION['user'].'! [<a href="logout.php"> Wyloguj się </a>]</p>';
echo "Twoje dane: <br/><br/>";
echo "Imię: ".$_SESSION['imie'];
echo "<br/>Nazwisko: ".$_SESSION['nazwisko'];
echo "<br/>Email: ".$_SESSION['email'];
echo "<br/>Plec: ".$_SESSION['plec'];
echo "<br/>Wiek: ".$_SESSION['wiek_d'];
?>
</form>
Nic to nie zmienia nadal jest ten sam błąd. Dodam też, że pozostałe zmienne działają bez zarzutu.
- Rejestracja:ponad 15 lat
- Ostatnio:7 miesięcy
Przy błędzie "Undefined index: wiek_d" powinieneś mieć dopisane w której linijce masz ten błąd. Pokaż na który fragment kodu konkretnie wskazuje błąd.
A jeśli kod masz zrobiony w takiej kolejności jak go wkleiłeś to skąd w tej linijce
$wiek_d = $_POST['wiek_d'];
masz mieć 'wiek_d' podczas ładowania strony jeśli jeszcze nic nie przesłałeś. Sprawdzasz w ogóle czy masz to zainicjowane?
isset($_POST['wiek_d'])
przed dostępem do zmiennej?
- Rejestracja:ponad 15 lat
- Ostatnio:7 miesięcy
Trzeba chyba zacząć od tego że są tutaj inne błędy....
- W
select
nie ma takiego parametru jakvalue
.value
jest woption
- Masz 3x
select
z takim samymname
... Jak pobierasz wartość to do którego selecta się odnosisz?name
ma być unikalny i donosić się do konkretnego 'obiektu' (selecta). - Gdzie w twoim kodzie jest
id>
lubname
wiek_d
? Bo nie bardzo wiem skąd chcesz pobierać te wartości. -
Dodam też, że pozostałe zmienne działają bez zarzutu.
Mógłbyś to rozwinąć co konkretnie tutaj działa i jak? Które zmienne działają i co wyświetlają>
- Rejestracja:ponad 7 lat
- Ostatnio:ponad 6 lat
- Postów:26
<br/> Login: <br/> <input type="text" value="<?php
if(isset($_SESSION['fr_nick']))
{
echo $_SESSION['fr_nick'];
unset($_SESSION['fr_nick']);
}
?>" name="nick" /> <br/>
<?php
if (isset($_SESSION['e_nick']))
{
echo '<div class="error">'.$_SESSION['e_nick'].'</div>';
unset($_SESSION['e_nick']);
}
?>
Przykładowo login.
- Rejestracja:ponad 7 lat
- Ostatnio:ponad 6 lat
- Postów:26
No właśnie jak tak robię to nie działa..
<select name="wiek_miesiac">
<option value='<? $_SESSION[' fr_wiek_m ']?>'>1</option>
<option value='<? $_SESSION[' fr_wiek_m ']?>'>2</option>
<option value='<? $_SESSION[' fr_wiek_m ']?>'>3</option>
<option value='<? $_SESSION[' fr_wiek_m ']?>'>4</option>
<option value='<? $_SESSION[' fr_wiek_m ']?>'>5</option>
<option value='<? $_SESSION[' fr_wiek_m ']?>'>6</option>
<option value='<? $_SESSION[' fr_wiek_m ']?>'>7</option>
<option value='<? $_SESSION[' fr_wiek_m ']?>'>8</option>
<option value='<? $_SESSION[' fr_wiek_m ']?>'>9</option>
<option value='<? $_SESSION[' fr_wiek_m ']?>'>10</option>
<option value='<? $_SESSION[' fr_wiek_m ']?>'>11</option>
<option value='<? $_SESSION[' fr_wiek_m ']?>'>12</option>
</select>
Nie pokazuje tego nadal.
- Rejestracja:ponad 15 lat
- Ostatnio:7 miesięcy
Wydaje mi się (albo i nie wydaje) że za bardzo nie wiesz co robisz...
Poczytaj trochę o select
i php - sesje
.
Tutaj masz rozwiązanie Twojego problemu https://stackoverflow.com/questions/17139501/using-post-to-get-select-option-value-from-html ale póki nie zrozumiesz zasady 'działania' select
i sesji
to raczej nic to nie da.
https://www.w3schools.com/tags/tag_select.asp
https://www.w3schools.com/tags/att_option_value.asp
https://www.w3schools.com/php/php_sessions.asp
PS. Takie formularze robi się raczej w pętli, wtedy jest prościej i szybciej. 3 x 2 linijki z pętlą vs 32 + 13 + XX linijek dla każdej opcji
https://www.w3schools.com/php/php_looping_for.asp

- Rejestracja:około 7 lat
- Ostatnio:około 2 lata
- Postów:64
BTW. Po co wyważać otwarte drzwi i pisać dziesiątki linijek kodu, które mogą zwrócić wynik w postaci 31 lutego (!!), jak można to zrobić jedną linią:
<input type="date" name="dataUr">
Zapis do bazy jako DATETIME, a następnie PHPem rozkład na części pierwsze by wyciągnąć potrzebne składowe. Nie prościej?
- Rejestracja:prawie 21 lat
- Ostatnio:6 dni
- Postów:700
Ewentualnie skorzystaj z jakiegoś gotowego rozwiązania w tym stylu:
https://jqueryui.com/datepicker/