Ocena wątku:
- 0 głosów - średnia: 0
- 1
- 2
- 3
- 4
- 5
Pamiętanie zmiennych bez submit
|
Liczba postów: 64
Liczba wątków: 25
Dołączył: 04-01-2011
Reputacja:
1
Witam serdecznie, zaznaczam że jest to początkujący kod i proszę o wyrozumiałość, szukałem i znajdowałem wiele quizów w php ale wszystkie były robione w sposób: wszystkie pytania na jednej stronie, ja chciałem zrobić prosty quiz z tym że każde pytanie na innej stronie, czyli trzeba wykorzystać sesje, kod który prezentuje poniżej działa tzn. na końcu wyświetla zmienne sesyjne, jednak jest pewna niedogodność, otóż za każdym razem przy odpowiadaniu na pytanije trzeba wcisnąć submit, bo tylko wtedy odpowiedź jest zapamiętana w zmiennej post i sesyjnej, moje pytanie jest: czy można od razu przy kliknięciu "następne pytanie"; zapamiętać tą odpowiedź (bez submit na każdej stronie)? poniżej kod.
Kod PHP: <----plik ask1.php-----------> <?php session_start(); $_SESSION['ask1'] = $_POST['p1']; ?>
<html> <body> <form action="ask1.php" method="post"> <input type="radio" name="p1" value="1">pierwsza opcja <input type="radio" name="p1" value="2">druga opcja <input type="radio" name="p1" value="3">trzecia opcja <input type="submit" value=go> </form> <a href="ask2.php">Nastêpne</a> </body> </html>
<----plik ask2.php-----------> <?php session_start(); $_SESSION['ask2'] = $_POST['p2']; ?>
<html> <body> <form action="ask2.php" method="post"> <input type="radio" name="p2" value="1">pierwsza opcja <input type="radio" name="p2" value="2">druga opcja <input type="radio" name="p2" value="3">trzecia opcja <input type="submit" value=go> </form> <a href="ask1.php">Poprzednie</a> <a href="ask3.php">Nastêpne</a> </body> </html>
<----plik final.php-----------> <?php session_start(); ?> <html> <body> wyniki ze zmiennych; echo $_SESSION['ask1']; echo $_SESSION['ask2']; session_destroy(); </body> </html> [/code]
Liczba postów: 367
Liczba wątków: 32
Dołączył: 22-04-2009
Reputacja:
9
kod moge przeanalizwac jak bede w domu, teraz pisze z tel. ale powiem ci jak bym to zrobil. formularz z pytaniem i przyciskiem ktory wysyla post (przycisk mialby tekst- nastepne pytanie). przy kolejnej str. z kolejnym pytaniem odbieral by odp z poprzedniego i albo sesja albo przekazywal by wraz z aktualnym pytaniem dalej, czyli przy drugim pytaniu przekazywane zmienne do trzeciego to: odp. z 1 i 2 na koncu otrzymane zmienne post bylyby z wszystkich poprzednich pytan. prosty kod wieczorem moge przedstawic.
Liczba postów: 2,587
Liczba wątków: 2
Dołączył: 03-04-2010
Reputacja:
58
Posłać żądanie AJAX do pliku, który Ci te dane zapisze w sesji.
@radian - Przecież chce bez submit
Liczba postów: 64
Liczba wątków: 25
Dołączył: 04-01-2011
Reputacja:
1
Radian pomysł z submit jako przycisk next jest ok tylko, piszesz że pytanie 2 zawiera zmienne z 1 i 2 pytanie 3 z 1 2 i3 niebardzo rozumiem, bo jak spojrzysz teraz to to też działa tzn na końcu są wypisywane zmienne sesyjne jak najbardziej ok, ale jak bedziesz mógł rzeczywiście przeaanalizowac kod będę wdzięczny. Pedro84 ajax jak na mnie za wysokie progi bo jesli dobrze patrze to skomplikowane to mocno jest :/
Liczba postów: 367
Liczba wątków: 32
Dołączył: 22-04-2009
Reputacja:
9
Rano podeślę bo dziś jestem nie żywy w te sprawy
Liczba postów: 2,587
Liczba wątków: 2
Dołączył: 03-04-2010
Reputacja:
58
(06-05-2011, 21:29)lomek napisał(a): Radian pomysł z submit jako przycisk next jest ok tylko, piszesz że pytanie 2 zawiera zmienne z 1 i 2 pytanie 3 z 1 2 i3 niebardzo rozumiem, bo jak spojrzysz teraz to to też działa tzn na końcu są wypisywane zmienne sesyjne jak najbardziej ok, ale jak bedziesz mógł rzeczywiście przeaanalizowac kod będę wdzięczny. Pedro84 ajax jak na mnie za wysokie progi bo jesli dobrze patrze to skomplikowane to mocno jest :/ AJAX jest banalny. Poszukaj w manualy jQuery.
Submit ma tę wadę, że ktoś będzie chciał kliknąć wstecz i już jest dupa.
Liczba postów: 367
Liczba wątków: 32
Dołączył: 22-04-2009
Reputacja:
9
07-05-2011, 14:19
(Ten post był ostatnio modyfikowany: 07-05-2011, 14:20 przez Radian.)
No więc tak kolego... to wykonałem: http://3d.hmax.pl/php/ankieta/test.php
Kilka moich uwag do tego jak to zrobiłem (nie miałem zbytnio czasu by zrobić to lepiej, ale zasade działania poznasz (wedle mojego sposobu, a z pewnością lepszym jest jednak ajax o którym wspomniał Pedro85, choć warto umieć wykonać to w php).
Jak będziesz robił swoją ankiete w php używaj include koniecznie, by nikt nie bawił sie w wpisywanie w pasku adresu test50.php by zobaczyć jakie są pytania gdzie i cofania ich na własną ręke.
Dodatkowo w pliku zakoncz.php masz podsumowanie, tam użyj ifów czy jak ci wygodnie aby podać ilość w % prawidłowych odpowiedzi itd. (również if musisz mieć w wypadku takim jak nie udziele odpowiedzi np. przy pytaniu 4 aby system uznał że jest to równoznaczne z udzieleniem błednej odpowiedzi).
Wszystko zależy już od ciebie, pliki do ściągnięcia masz pod tym linkiem: http://3d.hmax.pl/php/ankieta/ankieta.zip
p.s.
Nie bierz ze mnie przykładu i pisz kod ładniej (ja osobiście na codzień nie pisze tak jak tą ankiete
Liczba postów: 64
Liczba wątków: 25
Dołączył: 04-01-2011
Reputacja:
1
Dzięki wielki Radian za pomoc ale mam dwa pytania, zrezygnowałeś z sesji czyli w takiej ankiecie nie jest potrzbna sesja? oraz mówisz o includowaniu rozumiem ale co mam includować? poszczególne pytania z formami do index.php?
Liczba postów: 2,587
Liczba wątków: 2
Dołączył: 03-04-2010
Reputacja:
58
(08-05-2011, 00:21)lomek napisał(a): Dzięki wielki Radian za pomoc ale mam dwa pytania, zrezygnowałeś z sesji czyli w takiej ankiecie nie jest potrzbna sesja? oraz mówisz o includowaniu rozumiem ale co mam includować? poszczególne pytania z formami do index.php? Jak Ty chcesz to zrobić bez sesji?
Liczba postów: 64
Liczba wątków: 25
Dołączył: 04-01-2011
Reputacja:
1
(08-05-2011, 01:08)Pedro84 napisał(a): Jak Ty chcesz to zrobić bez sesji?  Tzn chodzi mi o to że w kodzie Radiana nie ma sesji
|
Użytkownicy przeglądający ten wątek: 1 gości
|
|
Sponsorzy i przyjaciele
|
|
|