Autor Zpráva
Danielshock
Profil
Dobrý den.
Jelikož se teď hodlám dělat jednoduchou stránku kterou mám zadanou od svého otce, zadal mi poměrně jednoduchou úlohu ale já si s ní moc nevím rady.
Chtěl bych vytvořit nějaký interaktivní test ve kterém by byly otázky a odpovědi př.: a)b)c) . Chtěl bych to tak že by bylo cca 100 otázek a z těchto otázek by se vybralo 10 náhodných otázek.
Hledal jsem na internetu už dlouho ale zatím žádný takový "tutorial" nebo tak nemůžu najít.
Byl bych velmi rád kdyby mi někdo pomohl nebo aspoň poradil jak na to :).
Hlavní na tom jsou ty odpovědi které musí byt na výběr.
Děkuji předem

PS: jedno takovéto forum už se na této stránce našel , z roku 2004 kde už sem prakticky nic nezjistil. :)
Kcko
Profil
Danielshock:
PHP => vícerozměrné pole (otázka, odpovědi, správná ...)
Pole zamíchat, vypsat , a pak při vyhodnocení projít a relativně jednoduchou logikou vyhodnotit, základní PHP znalosti.

Juriad tady někomu kvíz psal, ted to nedohledám, třeba Ti to sem nalinkuje.
juriad
Profil
Kcko:
Kdysi dávno jsem tu někomu navrhoval databázové schéma, ale to je zbytečně komplikované pro tento účel.

Danielshock:
Někde budeš mít uložené otázky, například v souboru formátu JSON:
[
  {
    "id": 1,
    "type": "choose one",
    "question": "Kolik je 3 + 3?",
    "answers": ["devět", "šest", "dvanáct"],
    "correct": 0
  },
  {
    "id": 2,
    "type": "choose one",
    "question": "Co bylo dřív dříve?",
    "answers": ["vejce", "slepice"],
    "correct": 1
  }
]

Toto načteš do PHP a převedeš na pole pomocí json_decode.
Z toho pole 100 otázek si náhodně vybereš 10; u nich proházíš odpovědi (se zachováním klíče) a vypíšeš do stránky něco jako:
<form method="post" ...>
...

  <div>
    <h3>Otázka 3</h3>
    <p>$question</p>
    <div>
foreach ($answers as $key => $val)
      <label><input type="radio" name="q[$id]" value="$key"> $val</label><br>
    </div>
  </div>
  
...
  <input type="submit">
</form>

Při zpracování najdeš vše v poli $POST["q"]. Načteš si pole s otázkami a zkontroluješ podle ID, zda je odpověď shodná s atributem correct.
Kcko
Profil
juriad:
To není ono, tohle jsem nemyslel, ale možná jsem si Tě s někým spletl, ale nezdá se mi.
Alphard
Profil
Já jsem sem dával PHP webový test, nevím, jestli je to to, na co vzpomíná Kcko.
Kcko
Profil
Alphard:
JJ to bude ono ;]

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: