Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z robieniem quizu
qwertycxz
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 24.07.2011

Ostrzeżenie: (0%)
-----


Witam, piszę tu ponieważ długo potrwałoby zanim doszedłbym do tego sam, a Wy zapewne będziecie mogli mi pomóc w mgnieniu oka.
A mianowicie mam plik index.php, zaikcludowałem do niego inny plik php który ma zawierać pytanie z quizu i możliwe odpowiedzi (A,B,C,D). Pytanie i odpowiedzi mam już gotowe jako grafikę, samo pytanie udało mi się wyświetlić, lecz tutaj nasuwa się mój dylemat. Chciałbym zrobić tak, by z kilkudziesięciu pytań zapisywały się odpowiedzi do pliku txt, aby później można było wyliczyć punkty. Przynajmniej tak to sobie wyobraziłem. A więc: nie wiem jak zrobić by były 4 obrazki z odpowiedziami A, B, C i D i aby po kliknięciu w któryś z nich w pliku zapisywała się wybrana odpowiedź obok numeru pytania. A może lepiej zrobić to na tablicy?
Czekam na wasze opinie, rady i skrypty wink.gif
Dziękuję i pozdrawiam!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 19)
Wilwarin
post
Post #2





Grupa: Zarejestrowani
Postów: 37
Pomógł: 4
Dołączył: 30.07.2011

Ostrzeżenie: (0%)
-----


a nie lepiej by było użyć $_POST a potem obliczyć wynik i przesłać go do bazy danych? tongue.gif
Go to the top of the page
+Quote Post
qwertycxz
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 24.07.2011

Ostrzeżenie: (0%)
-----


Tak też planuję, ale na razie mam inny problem:
mam kilka plików php zaincludowanych i chciałbym zrobić tak, żeby nie były widoczne na raz tylko po kliknięciu w coś a'la hiperłącza. Co powinienem zrobić, aby uzyskać taki efekt?
Go to the top of the page
+Quote Post
Wilwarin
post
Post #4





Grupa: Zarejestrowani
Postów: 37
Pomógł: 4
Dołączył: 30.07.2011

Ostrzeżenie: (0%)
-----


http://www.htmlforums.com/client-side-scri...ile-118404.html
http://www.google.pl/search?q=onclick+incl...-8&oe=utf-8

Google nie boli tongue.gif
Go to the top of the page
+Quote Post
grzes999
post
Post #5





Grupa: Zarejestrowani
Postów: 305
Pomógł: 29
Dołączył: 5.07.2011

Ostrzeżenie: (0%)
-----


Nie wiem czy dobrze cię zrozumiałem; ale ja proponował bym zapisywać do tablicy odpowiedź czuli a,b,itd... i później sprawdzić w pętli czy wybrane odpowiedzi zgadzają się z twoim wzorem jeśli się zgadza to +1 jeśli nie to 0.Ot i cała filozofia.
Go to the top of the page
+Quote Post
qwertycxz
post
Post #6





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 24.07.2011

Ostrzeżenie: (0%)
-----


Dzięki, skorzystam z Waszych porad. Teraz mam bardziej sprecyzowane pytanie:
jak by to zrobić, żeby po kliknięciu w graficzny button zapisywała się nadana mu wartość w tablicy $_POST? Załóżmy mam 4 odpowiedzi w formie plików .png, i chciałbym aby po kliknięciu w któryś z nich zapisywała się odpowiednia wartość (A-D).
Dzięki i pozdrawiam!
Go to the top of the page
+Quote Post
Wilwarin
post
Post #7





Grupa: Zarejestrowani
Postów: 37
Pomógł: 4
Dołączył: 30.07.2011

Ostrzeżenie: (0%)
-----


moim zdaniem najlepiej by było gdybyś zrobił form typ "radio" ( ten co możesz tylko 1 wybrać z wielu) i wstawić obrazki do pól wyboru.
Go to the top of the page
+Quote Post
qwertycxz
post
Post #8





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 24.07.2011

Ostrzeżenie: (0%)
-----


Dzięki, tak też zrobiłem, i tu nasuwa się kolejny problem...

Kod
<form name="wyborpyt" method="post" action="">
  <p>
    <label>
      <input type="radio" name="RadioGroup" value="1" id="RadioGroup_1">
      1</label>
    <br>
    <label>
      <input type="radio" name="RadioGroup" value="2" id="RadioGroup_2">
      2</label>
    <br>
    <label>
      <input type="radio" name="RadioGroup" value="3" id="RadioGroup_3">
      3</label>
    <br>
  </p>
</form>


To jest RadioGroup do przełączania pytań. Każde pytanie jest w osobnym pliku php. I jakby tu "wczepić" includowanie ich?
Proszę o pokazanie przykładu z wywołaniem 1 pytania:
Kod
include('1.php');


Dzięki, pozdrawiam i przepraszam za chaos w wątku smile.gif

Tamten problem udało mi się obejść. Teraz znowu nie wiem pewnej rzeczy...

Kod
<form name="pyt1" method="get" action="pytanie2.php">


Mam coś takiego. Jest to w pliku pytanie1.php. Dalej mam pola Radio i wszystko to zwraca value a, b, c lub d, w zależności od wybranej odpowiedzi. Mam jeszcze 2 takie pliki, każdy kolejny dodaje kolejną odpowiedź do adresu. I tu jest mój problem. po odpowiedzeniu na pierwsze pytanie adres wygląda tak: /pytanie2.php?pyt1=a.
Po odpowiedzeniu na drugie pytanie, adres wygląda tak: /pytanie3.php?pyt2=a. Jak to zrobić, żeby parametr z jednej strony przeskakiwał na drugą, żeby to wyglądało w ten sposób: /pytanie3.php?pyt1=a&pyt2=a ?
Dzięki za pomoc, pozdrawiam!

Ten post edytował qwertycxz 8.08.2011, 19:55:46
Go to the top of the page
+Quote Post
Wilwarin
post
Post #9





Grupa: Zarejestrowani
Postów: 37
Pomógł: 4
Dołączył: 30.07.2011

Ostrzeżenie: (0%)
-----


lepiej by było, gdybyś użył post zamiast get (ukryte odpowiedzi) i dać do złych odpowiedzi value 0 a do dobrej value 1, zrobić to postem na action, i przy każdym kolejnym pytaniu ściągać POST przy pomocy zmiennej (np w 1 masz input name=pytanie1 value=1 i jak to prześlesz to robisz
  1. $odp1 = $_POST['pytanie1'];

i przekazujesz do dalej przez
  1. <input type="hidden" name="odp1" value ="<?=$odp1?>" />

i potem to ściągasz znów przez
  1. $odp1 = $_POST['odp1'];

tak przy każdym, a potem sumujesz wszystkie values i masz ilość poprawnych odpowiedzi smile.gif Ale wg. mnie lepiej by było zrobić wszystko na 1 stronie (mniej zabawy biggrin.gif)

a jak chcesz jednak używać GET, to zrób tak samo, tylko, że z get biggrin.gif

Ten post edytował Wilwarin 8.08.2011, 20:34:24
Go to the top of the page
+Quote Post
Rid
post
Post #10





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

Ostrzeżenie: (0%)
-----


Cytat
Jak to zrobić, żeby parametr z jednej strony przeskakiwał na drugą.

A nie można do tego celu użyć sesji???Po jaki kij do tego mieszać hidden fieldy?
Go to the top of the page
+Quote Post
Wilwarin
post
Post #11





Grupa: Zarejestrowani
Postów: 37
Pomógł: 4
Dołączył: 30.07.2011

Ostrzeżenie: (0%)
-----


Ale powiedz mi co to za różnica? I to i to działa.
Go to the top of the page
+Quote Post
peter13135
post
Post #12





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


A choćby taka, że po odświeżeniu strony przeglądarka nie pyta się czy przesłać ponownie dane. Druga sprawa, sposób z sesjami jest prostszy.


--------------------
:)
Go to the top of the page
+Quote Post
Wilwarin
post
Post #13





Grupa: Zarejestrowani
Postów: 37
Pomógł: 4
Dołączył: 30.07.2011

Ostrzeżenie: (0%)
-----


Nawet jak prześle ponownie dane, to i tak to będą te same dane, więc nic się nie zmieni tongue.gif
Go to the top of the page
+Quote Post
Rid
post
Post #14





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

Ostrzeżenie: (0%)
-----


Cytat
Nawet jak prześle ponownie dane, to i tak to będą te same dane, więc nic się nie zmieni


Nie muszą być takie same-hidden fielda ,można zmanipulować dlatego powinno się w nim przechowywać nieistotne informacje.
Po za tym pole ukryte,mimo nazwy wcale takim nie jest,w kodzie źródłowym łatwo podejrzeć wartości takiego pola ukrytego-jeśli tam mają być umieszczane odpowiedzi to po prostu gratuluje twórcy.
Go to the top of the page
+Quote Post
peter13135
post
Post #15





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


Pewnie masz rację, efekt będzie podobny, ale na pewno prościej jest w skrypcie dać
  1. $_SESSION['coś']=1;
  2. echo '<a href="jakaś_podstrona.php">coś fajnego</a>


i w pliku "jakaś_podstrona.php" dać takie coś
  1. if(isset($_SESSION['coś'])


niż robić forumlarz w taki sposób
  1. echo '<form method="post" action="jakaś_podstrona" >
  2. <input ...';//już mi się nawet nie chce pisać, ale sam wiesz że dużo więcej do pisania i jest to wyważanie otwartych drzwi


--------------------
:)
Go to the top of the page
+Quote Post
Wilwarin
post
Post #16





Grupa: Zarejestrowani
Postów: 37
Pomógł: 4
Dołączył: 30.07.2011

Ostrzeżenie: (0%)
-----


Cytat(Rid @ 8.08.2011, 21:08:08 ) *
Nie muszą być takie same-hidden fielda ,można zmanipulować dlatego powinno się w nim przechowywać nieistotne informacje.
Po za tym pole ukryte,mimo nazwy wcale takim nie jest,w kodzie źródłowym łatwo podejrzeć wartości takiego pola ukrytego-jeśli tam mają być umieszczane odpowiedzi to po prostu gratuluje twórcy.

To może po prostu zrobić w value ABCD, a pod koniec rozpoznawać poprzez if co jest pod jakim $_POSTem, więc nawet jak ktoś podejrzy, to będzie widział tylko swoją poprzednią odpowiedź.
Go to the top of the page
+Quote Post
qwertycxz
post
Post #17





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 24.07.2011

Ostrzeżenie: (0%)
-----


Nie wiem jakby zaimplementować sesje, więc bardziej przychylałbym się do innego rozwiązania. Przy każdym polu radio mam value a, b, c lub d. Moim pomysł to uzyskanie ciągu z odpowiedzi użytkownika, np. adcbadccbdacb, a następnie porównanie go z ciągiem zawierającym same dobre odpowiedzi. I chyba na razie spróbuję sposobu Wilwarina z pierwszego postu pod moim pytaniem.
Dzięki i pozdrawiam!

Dalej to samo. Zastosowałem się do rady Wilwarina, a jako value używam a, b, c i d. Do kolejnego pytania przesyła się tylko odpowiedź z poprzedniego.

Ok, troszeczkę nad tym pomyślałem i teraz działa, ostatecznie mam ciąg odpowiedzi abc więc teraz pozostało mi jakoś porównać to z ciągiem gotowych odpowiedzi i zwrócić wynik. Moderatora proszę o nie zamykanie tematu, na 100% będę jeszcze miał jakieś pytania.

Dzięki i pozdrawiam!

Ok, mam problem...

Kod
<form name="pytanie1" method="POST" action="pytanie2.php">
<p>
<label><input type="radio" name="pytanie1" value="a" id="p1a"><img src="../images/test/1/1a.png" alt="1a" /></label>
<label><input type="radio" name="pytanie1" value="b" id="p1b"><img src="../images/test/1/1b.png" alt="1b" /></label>
<label><input type="radio" name="pytanie1" value="c" id="p1c"><img src="../images/test/1/1c.png" alt="1c" /></label>
<label><input type="radio" name="pytanie1" value="d" id="p1d"><img src="../images/test/1/1d.png" alt="1d" /></label><br>
</p>
<input type=submit value="Wyślij"/>


Dałoby się zrobić tak, aby przechodziło do pytanie2.php bez klikania przycisku wyślij? Tylko po samym kliknięciu w którąś z odpowiedzi.

Gdzieś również widziałem coś takiego, że w action ustawiona była strona z obliczaniem wyniku, a po odpowiedzi na pytanie przenosiło do kolejnego, nie do strony w polu action.

Proszę o jakieś sugestie.
Dzięki pozdrawiam

Ten post edytował qwertycxz 9.08.2011, 10:18:48
Go to the top of the page
+Quote Post
phpion
post
Post #18





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




@qwertycxz:
Proszę rozważniej rozdawać "Pomógł". Nie służą one do nagradzania za jakąkolwiek odpowiedź, a za odpowiedź faktycznie pomocną. Dawanie "Pomógł" pod każdą odpowiedzią nie jest tutaj mile widziane.
Go to the top of the page
+Quote Post
qwertycxz
post
Post #19





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 24.07.2011

Ostrzeżenie: (0%)
-----


Mam kolejny problem. Poprzedni jeszcze nie jest rozwiązany.
Mam oddzielny plik który includuje do każdego pliku z pytaniem i jest w nim takie jakby menu z miniaturkami pytań, jeśli jest już na nie udzielona odpowiedź to grafika jest zmieniana na jaśniejszy kolor. Odpowiedzi z pytań przesyłam submitem do kolejnego pytania - po każdym pytaniu wysyłam do kolejnego pliku z pytaniem wszystkie zmienne z odpowiedziami z poprzednich pytań. Problem jest taki, że gdy poprzez link graficzny z mojego includowanego menu wracam do poprzedniego pytania, wszystkie oznaczenia pytań na które została udzielona odpowiedź znikają. Ten plik z menu ściąga wszystkie zmienne w których są zapisane odpowiedzi z pytań i pod odpowiednim warunkiem ustawia link graficzny (zwykły lub jasny w zależności od tego czy na pytanie była udzielona odpowiedź, i link ten zawsze prowadzi do strony z pytaniem).
Proszę o jakieś sugestie smile.gif
Dzięki pozdrawiam

Pytanie na 6 linijek to trochę za dużo, więc mam inne, trochę bardziej sprecyzowane.
Kod
type="image" onClick=""

co wpisać w onClick, aby przeniosło mnie np. na stronę pytanie1.php?

Ten post edytował qwertycxz 11.08.2011, 20:35:51
Go to the top of the page
+Quote Post
Wilwarin
post
Post #20





Grupa: Zarejestrowani
Postów: 37
Pomógł: 4
Dołączył: 30.07.2011

Ostrzeżenie: (0%)
-----


Lepiej, jakbyś użył <a href="link"><img></a>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 20:10