![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 7.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
ponieważ dopiero zaczynam przygodę z PHP mam taki "trywialny" problem, a minowicie mam taki formularz : Kod <form action="odczyt.php method="post"> <div> <input name="Nazwa" />Podaj swoje imię i nazwisko(lub pseudonim - nick name) <input name="Poczta" />Podaj adres poczty elektronicznej <p>Podaj swoją płeć:</p> <input type="radio" name="Plec" value="Kobieta" />Kobieta <input type="radio" name="Plec" value="Mezczyzna" />Mężczyzna <p>Ile masz lat?</p> <input type="radio" name="Wiek" value="do 20" />do 20 <input type="radio" name="Wiek" value="21-30" />21-30 <input type="radio" name="Wiek" value="31-40" />31-40 <input type="radio" name="Wiek" value="41-50" />41-50 <input type="radio" name="Wiek" value="51-60" />51-60 <input type="radio" name="Wiek" value="powyzej 60" />powyżej 60 <p>Czym się zajmujesz?</p> <input type="checkbox" name="Zajecie[]" value="Ucze sie" />Uczę się <input type="checkbox" name="Zajecie[]" value="Pracuje" />Pracuję <input type="checkbox" name="Zajecie[]" value="Jestem na emeryturze" />Jestem na emeryturze <input type="checkbox" name="Zajecie[]" value="Inne" />Inne <p>Jak duża jest Twoja miejscowość? (liczba mieszkańców)</p> <input type="radio" name="Miejscowosc" value="Do 10 tys." />Do 10 tyś. <input type="radio" name="Miejscowosc" value="10 - 50 tys." />10 - 50 tyś. <input type="radio" name="Miejscowosc" value="50 - 100 tys." />50 - 100 tyś. <input type="radio" name="Miejscowosc" value="100 tys. - 1 milion" />100 tyś. - 1 milion <input type="radio" name="Miejscowosc" value="ponad 1 milion" />ponad 1 milion <p>Jakiego komputera używasz?</p> <input type="checkbox" name="Komputer[]" value="PC Pentium" />PC Pentium <input type="checkbox" name="Komputer[]" value="PC Pentium Celeron" />PC Pentium Celeron <input type="checkbox" name="Komputer[]" value="PC Pentium II" />PC Pentium II <input type="checkbox" name="Komputer[]" value="PC Pentium III" />PC Pentium III <input type="checkbox" name="Komputer[]" value="PC Pentium IV" />PC Pentium IV <input type="checkbox" name="Komputer[]" value="PC AMD" />PC AMD <input type="checkbox" name="Komputer[]" value="Macintosh" />Macintosh <input type="checkbox" name="Komputer[]" value="Sun" />Sun <p>Jakiego systemu operacyjnego używasz?</p> <input type="checkbox" name="System[]" value="Windows 98" />Windows 98 <input type="checkbox" name="System[]" value="Windows ME" />Windows ME <input type="checkbox" name="System[]" value="Windows 2000" />Windows 2000 <input type="checkbox" name="System[]" value="Windows NT" />Windows NT <input type="checkbox" name="System[]" value="Windows XP" />Windows XP <input type="checkbox" name="System[]" value="Windows Vista" />Windows Vista <input type="checkbox" name="System[]" value="Linux" />Linux <input type="checkbox" name="System[]" value="Inny Unix" />Inny Unix <input type="checkbox" name="System[]" value="MacOS" />MacOS <input type="checkbox" name="System[]" value="Inny" />Inny <p>Jakiej przeglądarki www używasz najczęściej?</p> <input type="checkbox" name="Przegladarka[]" value="Internet Explorer" />Internet Explorer <input type="checkbox" name="Przegladarka[]" value="Netscape Navigator" />Netscape Navigator <input type="checkbox" name="Przegladarka[]" value="Opera" />Opera <input type="checkbox" name="Przegladarka[]" value="Firefox" />Firefox <input type="checkbox" name="Przegladarka[]" value="Inna" />Inna <p>Jakie masz połączenie - modemowe czy stałe łącze?</p> <input type="radio" name="Polaczenie" value="Zwykly modem" />Zwykły modem <input type="radio" name="Polaczenie" value="Stale łacze" />Stałe łącze <p>Ile godzin tygodniowo spędzasz serfując w domu w Internecie?</p> <input type="radio" name="Godziny" value="Do 5 godzin" />Do 5 godzin <input type="radio" name="Godziny" value="5 - 10 godzin" />5 - 10 godzin <input type="radio" name="Godziny" value="10 - 20 godzin" />10 - 20 godzin <input type="radio" name="Godziny" value="20 - 30 godzin" />20 - 30 godzin <input type="radio" name="Godziny" value="ponad 30 godzin" />ponad 30 godzin <p>Jeśli masz dodatkowe spostrzeżenia i uwagi, to to jest właśnie to miejsce</p> <textarea name="Komentarz" cols="50" rows="10">Proszę, wpisz tutaj jakiś komentarz...</textarea> <!-- Przycisk WYŚLIJ --> <input type="submit" value="Wyślij" /> <!-- Przycisk KASUJ ANKIETE --> <input type="reset" value="Kasuj ankietę" /> </div></form> a teraz potrzebny mi jest skrypt, który by odczytał dane z formularza i je wyświetlił w formie : Dziekuję za wypełnienie formularza. Twoje dane to: Imie i nazwisko/pseudonim: .... Płeć: ... Wiek: ... Zajęcie: ..., .... (jeżeli zaznaczone kilka to wypisane wszystkie) . . . |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Żeby wypisac zajęcie musisz przeczesać tablicę $_POST['Zajecie'] i zobaczyć które wartości były zaznaczone, czyli które zostały przesłane. Ona nie będzie miała wszystkich indeksów tylko te zaznaczone w ankiecie, więc nie zrobisz tego przez for a jedynie przez foreach.
Na przykład:
A tak na przyszłość, keśli wiesz które indeksy się pojawiły to do pojedynczej wartości możesz się również odnieść tak: $_POST['Zajecie'][$index] Ten post edytował JoShiMa 7.01.2009, 10:34:18 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 7.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za wskazówkę.
czyli dla radiobutonów i pól tekstowych robię np: Kod <?PHP $a = $_POST[Nazwa] echo $a ?> A dla każdego checkbox tak jak napisałeś: Kod <?php
foreach($_POST['Zajecie'] as $index=>$wartosc){ echo $wartosc.','; } ?> |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 7.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
czyli wyglądałoby to tak :
Kod <?PHP echo "Twoje nazwisko/nick to: "$_POST['Nazwa']; echo "Twój adres e-mail to: "$_POST['Poczta']; echo "Jesteś "$_POST['Plec']; echo "Twój przedział wiekowy to: "$_POST['Wiek']; foreach($_POST['Zajecie'] as $index=>$wartosc{ echo "Aktualnie zajmujesz się: "Swartosc.','; echo "Twoja miejscowosc liczy: "$_POST['Miejscowosc']; foreach($_POST['Komputer'] as $index=>$wartosc{ echo "Uzywasz komputera: "$wartosc.','; foreach($_POST['System'] as $index=>$wartosc{ echo "Uzywasz systemu operacyjnego: "$wartosc.','; foreach($_POST['Przegladarka'] as $index=>$wartosc{ echo "Uzywasz przegladarki: "$wartosc.','; echo "Posiadasz połaczenie: "$_POST['Polaczenie']; echo "Tygodniowo spedzasz w internecie: "$_POST['Godziny']; ?> mam jeszcze wątpliwość co do $index i $wartosc - czy nie powinno być na $index1, $index2... $wartosc1, wartosc2 w sensie, aby się nie powtarzały te same zmienne. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie:
tylko:
Zapomniałeś o kropkach (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Poza tym jeśli masz czysty string nez zmiennych wewnątrz to lepiej używac apostrofu niż cudzysłów (wydajność). Nie:
Tylko:
W Twojej wersji wypisałby tekst: "Aktualnie zajmujesz się:" przed każdą wartością zajęcia. No i zgubiłeś nawias i klamrę Przecież te zmienne nie będą Ci potem potrzebne, więc po co bez sensu tworzyć kolejne? W pierwszej pętli wykorzystasz $index i $wartość a potem nie są ci potrzebe więc możesz ich użyć w następnej pętli i tak dalej i tak dalej. Aha. Jak prezentujesz kod php to korzystaj z tagów do php (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jeszcze zamiast:
możesz napisać
Będzie ładniej bo bez przecinka za ostatnią pozycją |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 7.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie za wskazówki, poprawiłem i teraz jest tak:
Kod <?PHP echo 'Dziękujemy za wypełnienie formularza.'; echo 'Twoje nazwisko/nick to: '.$_POST['Nazwa']; echo 'Twój adres e-mail to: '.$_POST['Poczta']; echo 'Jesteś '.$_POST['Plec']; echo 'Twój przedział wiekowy to: '.$_POST['Wiek']; echo 'Aktualnie zajmujesz się: '; foreach($_POST['Zajecie'] as $index=>$wartosc{ echo Swartosc.','; } echo 'Twoja miejscowosc liczy: '.$_POST['Miejscowosc']; echo 'Uzywasz komputera: '; foreach($_POST['Komputer'] as $index=>$wartosc{ echo $wartosc.','; } echo 'Uzywasz systemu operacyjnego: '; foreach($_POST['System'] as $index=>$wartosc{ echo $wartosc.','; } echo 'Uzywasz przegladarki: '; foreach($_POST['Przegladarka'] as $index=>$wartosc{ echo $wartosc.','; } echo 'Posiadasz połaczenie: '.$_POST['Polaczenie']; echo 'Tygodniowo spedzasz w internecie: '.$_POST['Godziny']; ?> Załączam ten kod żeby ktoś inny mógł też wykorzystać wskazówki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pozdrawiam |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Polecam się na przyszłość:
http://forum.php.pl/index.php?act=announce&f=1&id=4 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 1 Dołączył: 6.11.2008 Skąd: /etc/passwd Ostrzeżenie: (0%) ![]() ![]() |
echo 'Aktualnie zajmujesz się: '; foreach($_POST['Zajecie'] as $index=>$wartosc{ echo Swartosc.','; } Zamiast S radziłbym napisać $ (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 20.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
W php jestem zielony jak szczypiorek, dlatego prosze o pomoc. Mam podobny formularz z checkboxami jak gruber, jedyna roznica jest taka ze potrzebuje zapisac wartosci z calego formularza do pliku txt. Wszsytko dziala fajnie oprocz checkboxow, zapisuje mi tylko jedna, ostatnia wartosc z checkboxow. Gdy sprobowalem uzyc foreach, a potem echo i wyswietla wszystkie zaznaczone pola poprawnie. Teraz niewiem jak to zapisac Czy istnieje np. mozliwosc zapisania do txt tego co bylo wyswietlone przy uzyciu echo? tak to wyglada u mnie bez foreach i echa, ale przynajmniej zapisuje do pliku:
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 850 Pomógł: 120 Dołączył: 15.02.2007 Skąd: Łódź Ostrzeżenie: (10%) ![]() ![]() |
Może z foreach >> do zmiennej >> do pliku?
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 20.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Sprobowalem czegos takiego, ale tez niebardzo.
w pliku wyrzucilo mi : Array + wartosc tylko z ostatniego zaznaczonego check boxa, Czy jest moze taka funkcja ktora caly tekst wyswietlony przez echo zapisuje do pliku? bo z echo wyswietla mi wszystkie zaznaczone wartosci. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 09:00 |