Autor Zpráva
jiri40
Profil
Dobrý den, dělám úkol do školy, který zní: Vytvořit aplikaci, která vylosuje 20 náhodných otázek ze souboru 1000 otázek, které jsou rozděleny dle předmětu (Word, Excel, PP) a dle obtížnosti (lehká, střední, těžká). Každá z 1000 otázek má k dispozici 5 odpovědí (0-5 správně).
Vytvořil jsem zkušební verzi (http://www.mngi.ic.cz/) v PHP, která vylosuje podle obtížnosti a předmětu 20 otázek (data "tahá" z databáze MySQL, výsledky by učiteli chodily do e-mailu). Učiteli se však zdá tato varianta uživatelsky nepřívětivá a něco na tom je, ale nic lepšího jsem nevymyslel.
Radši by měl formulářová pole hned vedle otázek a odpovědí a výsledky vyhodnocoval nějak takto v JS: http://www.mngi.ic.cz/test_js.php. Přijde mi, že to tímto způsobem nelze aplikovat na losování otázek a navíc je to jen pro jednu správnou odpověď, ale jsem hlavně v JS naprostý amatér.
Prosím o radu, jestli lze tento úkol nějak jednoduše vyřešit, ať už v PHP nebo v JS? Díky
Tori
Profil
jiri40:
A co kdybyste to zkombinoval dohromady, bez JS? Použít vzhled podle test_js.php, náhodný výběr otázek podle původní verze. Tlačítkem "Zkontrolovat" se formulář normálně odešle a zpracuje, pošlete mail, a kromě pozdravu od učitele zobrazíte znova texty otázek a odpovědí, které uživatel zaškrtnul, a zvýrazníte, jestli byly správné.
Btw koukněte se, k čemu je <label>. Kdyby bylo přepínačů pár tak ok, ale při [20 otázek krát 5 možností] je už dost nešikovné trefovat se do přepínače.
jiri40
Profil
Díky moc za tip, je to dobrý nápad. Pokusím se o to a dám vědět, jak to dopadlo. Jen ještě jedna věc - když se ty otázky losují, nedokážu je a jejich okolí jakýmkoli způsobem graficky či jinak upravovat - např. aby byla otázka vypsána tučným písmem a odpovědi ne či právě aby byly zaškrtávací políčka před každou z odpovědí. Dokázali byste poradit i s tímto? Děkuji.
Tori
Profil
jiri40:
A jak máte ty otázky a odpovědi uložené?
jiri40
Profil
Tori:
Otázky a odpovědi jsou uložené v databázi MySQL. Každý řádek v databázi má devět položek, viz příklad níže. Vždy když se pokouším nějakým způsobem formátovat výstup (těch 20 náhodných otázek), objeví se chybová hláška. Díky za trpělivost.

otazka_cislo - otazka_zadani - kategorie - obtiznost - odpoved_a - odpoved_b - odpoved_c - odpoved_d - odpoved_e;
Otázka č. 1 - Aěščřžýáíé1 - Word - 1 - a)bcd1 - b)fgh1 - c)xyz1 - d)opq1 - e)klm1.
Tori
Profil
Ten návrh DB není úplně fajn - kdybyste chtěl přidat víc možných odpovědí, budete muset přidávat další sloupce a to je špatně. Tabulka představuje nějakou věc, objekt, entitu, a jednotlivé sloupečky jsou její vlastnosti. Odpověď ale není vlastnost otázky. Dala bych otázky do samostatné tabulky, se sloupci id_otazky, id_odpovedi, text, poradi, jeSpravna. A aby se neopakovala stejná data ve sloupcích kategorie a obtížnost, dala bych tyhle dva sloupečky do tabulky kategorií (id_kategorie, nazev, obtiznost). Tabulka otázek by pak vypadala id_otazky, id_kategorie, zadani.

Kdybyste něčemu nerozuměl, proč to tak navrhuju, ptejte se. Na linuxsoftu je starší ale stále dobrý seriál o MySQL, budou se vám hodit hlavně díly o spojování tabulek. Každopádně bych udělala aspoň tu první změnu (osamostatnění odpovědí), bude se s tím i v PHP trochu přehledněji pracovat (ve FAQ je naznačené jak).
jiri40
Profil
Zní to zajímavě, mám tedy co studovat. Fakt je ale ten, že můj učitel by si to pak rád spravoval sám a on to má uložené v XLS tabulce ve formátu, který jsem uváděl, tzn. na jednom řádku kategorie, obtížnost, otázka a odpovědi k ní. Jdu na to, držte mi palce a já se ještě ozvu, jak to vypadá. Díky.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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