Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Pamiętanie zmiennych bez submit
#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] 
Odpowiedz
#2
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.
Odpowiedz
#3
Posłać żądanie AJAX do pliku, który Ci te dane zapisze w sesji.

@radian - Przecież chce bez submit Wink
Odpowiedz
#4
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 :/
Odpowiedz
#5
Rano podeślę bo dziś jestem nie żywy w te sprawy Smile
Odpowiedz
#6
(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.
Odpowiedz
#7
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 Smile
Odpowiedz
#8
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?
Odpowiedz
#9
(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? Wink
Odpowiedz
#10
(08-05-2011, 01:08)Pedro84 napisał(a): Jak Ty chcesz to zrobić bez sesji? Wink
Tzn chodzi mi o to że w kodzie Radiana nie ma sesji Smile
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  PHP i zapmiętywanie zmiennych heavy1123 5 3,412 01-03-2012, 04:58
Ostatni post: Pedro84
  Przekazywanie zmiennych Marys 7 6,213 30-12-2010, 10:01
Ostatni post: www.skrypty.pro
  [PHP][MySQL] Pobranie rekordów do zmiennych acca06 2 3,980 28-07-2010, 23:49
Ostatni post: acca06

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl