Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] Odnoszenie się do formularza w php
Forum PHP.pl > Forum > Przedszkole
Martitaa
Nie wiem jak się odnosi do formularza proszę o poprawienie błędu i wytłumaczenie.
Pokazuje błąd tutaj $dzien = date('N', strtotime($_POST['data']));
  1. <form action="tydzien.php" method="post">
  2. <label for="dzień">Dzień:</label>
  3. <select name="dzien">
  4. <?php
  5. for ($i=1;$i<=31;++$i)
  6.  
  7. echo '<option value="'.$i.'">'.$i.'</option>';
  8. ?>
  9. </select> </br></br>
  10. <label for="miesiac">Miesiąc:</label>
  11. <select name="miesiac">
  12. <?php
  13. for($l=1;$l<=12;++$l)
  14. echo '<option value="'.$l.'">'.$l.'</option>';
  15. ?>
  16. </select></br></br>
  17. <label for="rok">Rok:</label>
  18. <select name="rok">
  19. <?php
  20. for($t=1900;$t<=2010;++$t)
  21. echo '<option value="'.$t.'">'.$t.'</option>';
  22. ?>
  23. </select> </br>
  24. </br></br><input type="submit" name="sprawdz" value="Sprawdź dzień tygodnia" />
  25. </br></br><input type="reset" name="reset" value="Wyczyść" />
  26. </form>


  1. <?php
  2. $dzien = date('N', strtotime($_POST['data']));
  3. $dni_tygodnia = array('Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota','Niedziela');
  4.  
  5. echo $dni_tygodnia[$dzien-1];
  6. ?>
nospor
No przeciez nie masz juz pola o nazwie 'data'. Zamienilas go na 3 selecty, pamietasz?
Martitaa
Jeszcze mam gdzieś błąd ale nie wiem gdzie.
  1. <?php
  2. $dzien = .$i.('N', strtotime($_POST['dzien']));
  3. $dzien = .$l.('N', strtotime($_POST['miesiac']));
  4. $dzien = .$t.('N', strtotime($_POST['rok']));
  5. $dni_tygodnia = array('Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota','Niedziela');
  6.  
  7. echo $dni_tygodnia[$dzien-1];
  8. ?>


I tak próbowałam i nic
  1. <?php
  2. $dzien = dzien('N', strtotime($_POST['dzien']));
  3. $dzien = miesiac('N', strtotime($_POST['miesiac']));
  4. $dzien = rok('N', strtotime($_POST['rok']));
  5. $dni_tygodnia = array('Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota','Niedziela');
  6.  
  7. echo $dni_tygodnia[$dzien-1];
  8. ?>


Proszę o wytłumaczenie i poprawienie błędu.
nospor
Cytat
I tak próbowałam i nic

$dzien = dzien('N', strtotime($_POST['dzien']));



O, bardzo ciekawe podejscie do tematu. Nie wiedzialem ze tak mozna, sprobuj wiec tego, moze zadziala


  1. $wynik = zrob_sie_samo($formularz);

Jak sie bawic, to na calego smile.gif

Jesli zas zdecydujesz podejsc powaznie do tematu, to przypomnij sobie co zawierala $_POST['data'], w jakim formacie a potem zastanow sie czemu strtotime($_POST['dzien']) nie ma prawa dzialac. Manual php, do ktorego juz cie odsylalem, bedzie bardzo pomocny
Martitaa
Przeczytałam ale nic z tego nie rozumiem. Proszę o wytłumaczenie
nospor
W skrocie:
do strtotime() masz przekazywac date, np 2020-05-20
W pierwszej wersji skryptu, gdzie mialas jedno pole z data, mialas taki kod

strtotime('2020-05-20')

Teraz zas masz
strtotime('20')
strtotime('05')
strtotime('2020')

Znajdz 10 roznic wink.gif
Martitaa
O to chodzi? Tylko nie mam zielonego pojęcia co wstawić zamiast date.
  1. <?php
  2. $dzien = date('N', strtotime($_POST['dzien']));
  3. $miesiac = date('N', strtotime($_POST['miesiac']));
  4. $rok = date('N', strtotime($_POST['rok']));
  5. $dni_tygodnia = array('Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota','Niedziela');
  6.  
  7. echo $dni_tygodnia[$dzien-1];
  8. ?>


Proszę o wytłumaczenie bo nie mam zielonego pojęcia o co chodzi przy select . Przy input rozumiem już np.
<input type="text" name="pole_1" />
$tekst_1=$_POST['pole_1'];

Błagam wytłumacz mi to bo nigdy do tego nie dojde.

nospor błagam wytłumacz mi
nospor
Tlumaczylem, postac do jakiej masz dazyc to:

2020-05-20

Teraz masz
20
05
2020

A ty zamiast dazyc wiec do 2020-05-20 ty nadal piszesz kod ktory pracuje z
20
05
2020
Masz miec jedno strtotime() a ty nadal tworzysz 3 strtotime dla kazdej skladowej oddzielnie


To po co ja mam cos tlumaczyc jak ty i tak swoje dalej robisz?


Pomysl, co nalezy zrobic by z wartosci
20
05
2020

uzyskac jeden tekst w postaci: 2020-05-20
?
Martitaa
Nic nie mogę wymyśleć . Robie to tak jak rozumiem. Nie mam zielonego pojęcia jak to połączyć. Ja już nic nie wymyśle. Nie rozumiem tego jak to się robi. Nie wiem jak połączyć.
TYlko to wymyśliłam
  1. <?php
  2. $dzien = date('N', strtotime($_POST['rok; miesiac; dzien']));
  3. $dni_tygodnia = array('Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota','Niedziela');
  4.  
  5. echo $dni_tygodnia[$dzien-1];
  6. ?>
nospor
https://www.php.net/manual/en/language.operators.string.php
zapoznaj sie z podanymi tak przykladami jak laczyc rozne zmienne/wartosci ze soba w jeden ciag
Martitaa
Jeszcze wyskakuje błąd . Nie wiem co jest źle. Przeczytałam z teko linku co mi przesłałeś.
Wszyszło mi coś takiego

  1. <?php
  2. $rok.$miesiac.$dzien = date('N', strtotime($_POST['rok; miesiac; dzien']));
  3. $dni_tygodnia = array('Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota','Niedziela');
  4.  
  5. echo $dni_tygodnia[$dzien-1];
  6. ?>

nospor
Ile razy mam powtarzac. Do strtotime() masz wlozyc date w postaci 2020-05-20 a co za tym idzie to tam masz laczyc wartosci z POSTa
Martitaa
Przepraszam źle zrozumiałam.
Zrobiłam tak jak mówiłeś ale nadal mam błąd

  1. <?php
  2. $dzien = date('N', strtotime($_POST['$rok.$miesiac.$dzien']));
  3. $dni_tygodnia = array('Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota','Niedziela');
  4.  
  5. echo $dni_tygodnia[$dzien-1];
  6. ?>
viking
Zacznij od podstaw Temat: Jak poprawnie zadac pytanie oraz przygotowac srodowisko pracy
Włącz wszystkie błędy. Wróć jak php nie będzie wyświetlał żadnego.
Martitaa
Cytat(viking @ 20.05.2020, 18:18:59 ) *
Zacznij od podstaw Temat: Jak poprawnie zadac pytanie oraz przygotowac srodowisko pracy
Włącz wszystkie błędy. Wróć jak php nie będzie wyświetlał żadnego.

Nie potrafie sama się nauczyć i potrzebuje pomocy.

Mam bardzo dobrze przygotowane środowisko pracy.

Błąd Notice: Undefined index: $rok.$miesiac.$dzien in C:\xampp\htdocs\Data\tydzien.php on line 30 to jest $dzien = date('N', strtotime($_POST['$rok.$miesiac.$dzien']));

Proszę o wytłumaczenie
viking
A naprawdę tak ciężko samemu poszukać? Indeks w tablicy ma zgadzać się z name w formularzu. Nospor kilka razy napisał co masz zrobić a zamiast pomyśleć i poszukać strzelasz w kodzie losowymi znakami.
Martitaa
Cytat(viking @ 20.05.2020, 18:36:11 ) *
A naprawdę tak ciężko samemu poszukać? Indeks w tablicy ma zgadzać się z name w formularzu. Nospor kilka razy napisał co masz zrobić a zamiast pomyśleć i poszukać strzelasz w kodzie losowymi znakami.

Szukam od 7.00 rana i nic nie znalazłam. Nie strzelam losowo tylko pisze kod tak jak rozumiem polecenie od Nospor. Myśle i nic nie mogę wymyśleć.

Błagam pokażcie mi dokładnie gdzie mam błąd.
nospor
Twoje dane pochodza z formularza wiec tam ich masz szukac....
Dane z forma sa w $_POST a twoim przypadki konkretnie w

$_POST['dzien']
$_POST['miesiac']
$_POST['rok']

To z tych danych masz ulozyc 2020-05-20

I powtarzam: 2020-05-20
a nie: 20200520 co probujesz teraz caly czas zrobic


To sa podstawy podstaw. Zamiast brac sie za pisanie skryptow, przelec w pierw od deski do deski jakikolwiek kurs php dla poczatkujacych bo programowanie nie polega na losowym skladaniu literek co ty przez wiekszosc tego tematu robisz.
Martitaa
uczyłam się z kursu php tylko nie rozumiem tego dlatego wole uczyć się na przykładach
Ktoś na innym forum napisał mi $date = $_POST['dzien'] . '-' . $_POST['miesiac'] . '-' . $_POST['rok']

Teraz mi błąd nie wyskakuje, ale jak wybiore z formularza dzień 19, miesiąc 6 i rok 1983 i kliknę w przycisk sprawdź to nie pokazuje mi się Niedziela tylko nic się nie pokazuje.
Gdzie jest błąd?
  1.  
  2. $date = $_POST['dzien'] . '-' . $_POST['miesiac'] . '-' . $_POST['rok']
  3. $dni_tygodnia = array('Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota','Niedziela');
  4.  
  5. echo $dni_tygodnia[$date];
  6.  


Nadal proszę o pomoc i nalegam. Jak mam to zrobić skoro nie rozumiem jak to się robi?
Zależy mi na tym żeby nauczyć się php. Kurs php który przerobiłam i manual php nier ozumiem. Już 20 lat szukam pracy i nikt nie chce mnie przyjąć bo nie mam doświadczenia, bo nie mam szkoły wyższej, bo jestem niepełnosprawna z chorymi nogami.
Błagam pomóż mi się tego nauczyć.
Błagam pokaż mi gdzie mam błąd teraz.

  1. <?php
  2.  
  3. $date = $_POST['dzien'] . '-' . $_POST['miesiac'] . '-' . $_POST['rok']
  4. $dzien = $date->format('w')
  5. $dni_tygodnia = array('', 'Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota','Niedziela'); = array('Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota','Niedziela');
  6. echo $dni_tygodnia[$dzien];
  7.  
  8.  
  9. ?>
  10.  
Lord
  1. $_POST['dzien'] //tu masz numer dnia prawdopodobnie
  2. $dni_tygodnia = array('Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota','Niedziela'); // ta tablica jest numerowana od 0, czyli poniedziałek ma index 0, wtorek 1 itd
  3. echo $dni_tygodnia[2]; //wyświetli ci środę
  4. echo $dni_tygodnia[$_POST['dzien']]; //wyświetla dzień na podstawie liczby jaką przechowuje $_POST['dzien']
nospor
Cytat
$_POST['dzien'] //tu masz numer dnia prawdopodobnie

Nie, ona tam ma dzien miesiaca a nei dzien tygodnia. Jak juz chcesz pomoc to czytaj temat dokladnie wink.gif


@maritaa ty w ogole nie myslisz nad tym co robisz. Temu pomaganie tobie to zadna przyjemnosc bo pomaganie tobie to napisanie za ciebie gotowca. Jaki tego sens?

Mialas juz w pierwszym poscie tego tematu poprawny kod do pobrania tego co chcesz. Jedyny problem to rozbilas pole z data na 3 pola. I jedyne co mialas zrobic to w oryginalnym kodzie co mialas, zamiast $_POST['data'] mialas wstawic date zlozona z twoich 3 pol o ktorych ci juz pisalem .A ty co? Mimo ze podalismy ci juz wszystkie niezbedne informacje, ty tylko nadal radosnie klepiesz bez zadnego namyslu w te klawiature, ot by tylko poklepac.

Nawet nie potrafisz zrozumiec ze jak ci mowie ze ma byc 2020-05-20 to ty i tak robisz odwrotnie 20-05-2020.... Przeciez ja po polsku ci to napisalem a nie po chinsku....
Martitaa
Rozbiłam na 3 pola bo chcę nauczyć się napisać kod php do pierwszej opcji i do drugiej opcji.

Do pierwszej opcji już wiem jak napisać a do drugiej opcji nie wiem. Poza tym formularz mój ma najpierw dzień potem miesiąc i potem rok i ma się tylko wyświetlić dzień tygodnia. Data ma być Polska a nie Angielska.

Do strtotime() masz wlozyc date w postaci 2020-05-20 o to chodzi?
  1. $dzien = date('N', strtotime($_POST['rok'] . '-' . $_POST['miesiąc'] . '-' . $_POST['dzień']));
  2.  

nospor
Cytat
Poza tym formularz mój ma najpierw dzień potem miesiąc i potem rok

No i co z tego jaka jest kolejnosc w formularzu? Potem w php mozesz sobei to obrabiac jak ci sie zywnie podoba



$dzien = date('N', strtotime($_POST['rok'] . '-' . $_POST['miesiąc'] . '-' . $_POST['dzień']));
Tak, wlasnie o to chodzilo


Cytat
. Data ma być Polska a nie Angielska.
Ty juz chyba sama nie wiesz co mowisz... Jaka data. Zdaje sie ze interesuje cie dzien tygodnia docelowo, tak? No to masz robic tak, by dojsc do dnia tygodnia. Jak bedziesz chciala sobie potem wyswietlic date, to sobie wyswietlaj w jakim formacie ci sie podoba. Mozesz nawert po chinsku wyswietlic.
Martitaa
Już ktoś z innego forum powiedział mi jak to zrobić. Teraz rozumiem już o co chodzi.
Ja ucze się na przykładach. Jakbym miała podobne zadanie to bym już umiała zrobić.
nospor
Cytat
Ja ucze się na przykładach. Jakbym miała podobne zadanie to bym już umiała zrobić.

Czyli w praktyce sie nie uczysz w ogole. Bo jestes w stanie zrobic tylko i wylacznie podobne kawalki. A zadan do zrobienia jest nieskonczonosc. nie jeestes w stanie nauczyc sie wszyskich zadan.

Ale twoja decyzja.
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.