Autor | Zpráva | ||
---|---|---|---|
Maja Profil * |
#1 · Zasláno: 25. 7. 2010, 02:05:12
Zdravím, chceme vytvořit obrázkový psychotest - dítě si prohlídne vylosovaný obrázek a označí jej mezi 20 jinými obrázky. Mořím se s tím celý den a už nemůžů a nevím jak dál. Pomůžete mi někdo ?? Díky Maja
<form action="erbydotaz.php" method="Post"> <?php $xxx=rand(1, 3) ?> <img src="<?php echo "$xxx"; ?>gif" border="0" alt="<?PHP ECHO "$xxx"; ?>"> <br> Zapamatuj si tento ERB, zaškrtni políčko a stejně označ tento erb i na spodku stránky !!! <br> <input type="checkbox" name="rek1" value="<?php $xxx?>"> <hr><br> <img src='1.gif' alt='1' width='200' height='240' border='0'/><input type="checkbox" name="rek" value="1"/> <img src='2.gif' alt='2' width='200' height='240' border='0'/><input type="checkbox" name="rek" value="2"/> <img src='3.gif' alt='3' width='200' height='240' border='0'/><input type="checkbox" name="rek" value="3"/> <br><br> Vyber si prosím políčko a <input type="submit" value="Potvrzuji"> <?php if($_POST['rek1']==$_POST['rek']) // pokud heslo souhlasi echo " Uhodl jsi - losovaný obrázek = ".($_POST['rek1'])." a můj typ = ".($_POST['rek'])." !!! "; else echo " <br><br> Těsně vedle :-(( <br> losovaný obrázek = ".($_POST['rek1'])." a můj typ = ".($_POST['rek'])." <br>"; ?> </form> |
||
xmark Profil |
#2 · Zasláno: 25. 7. 2010, 02:09:17
No a co máš za problém? (kromě chybějící tečky před "gif" na řádku 5)
|
||
Maja Profil * |
#3 · Zasláno: 25. 7. 2010, 02:17:38
No že to nefunguje.
Nejhorší je to - že se po každém kliknutí na tlačítko změní i ten první náhodný obrázek a tudíž je výsledek neregulerní. |
||
xmark Profil |
#4 · Zasláno: 25. 7. 2010, 02:35:36 · Upravil/a: xmark
Opravdu nemám rád slovo "nefunguje". Něco to dělá. Bylo by dobré popsat jednak co chceš aby to dělalo a jednak, co to dělá.
Chápu, že záměrem je zobrazit náhodně vybraný obrázek a dát na výběr tři možnosti. 1. Proč jsou to zatržítka? Nebylo by lepší dát tam toto? <input type="radio" name="stejne_jmeno" value="druhá"> 2. Vygenerovanou hodnotu se snažíš předat dalším checkboxem. Nevidím důvod, proč nepoužít <input type="hidden" name="skryte" value="ahoj"> Takže celý formulář se bude skládat ze tří prvnů input (type radio) a jednoho input (type hidden) //edit: doplním odkaz na stránku o formulářích: http://www.jakpsatweb.cz/html/formulare.html#select |
||
Chro Profil |
#5 · Zasláno: 25. 7. 2010, 07:33:20
Maja:
Nikdy na dítě v psychotestu nekřičte!!! Ukažte mu vlídnou tvář i při špatném výsledku. :-) |
||
jenikkozak Profil |
#6 · Zasláno: 25. 7. 2010, 10:44:52
Maja:
Možná mimo téma (které ale nebyo určeno): 1. Mícháš prvky XHTML (lomítka na konci „nepárových“ tagů) s klasickým HTML (<br>). 2. Psát tři diakritická znaménka (!, ?) za sebou není hezké. Psát před ně mezeru, je ještě horší. Ale nacpat mezi ně dvě mezery, to se jen tak nevidí. (Navíc se ti v HTML zobrazí stejně jen jedna.) 3. Chceš-li mít stránku trošku bezpečnější, není dobré posílat vygenerované náhodné číslo uživateli, aby nemohl podvádět. Ale možná máš takovou cílovou skupinu, že na tomhle nezáleží. |
||
Chro Profil |
#7 · Zasláno: 25. 7. 2010, 11:10:16
Maja:
Výsledek testu, případně chyby, bych zobrazoval raději před formulářem, rychlý příklad: <?php if (isset($_POST['odeslano'])) { if (!isset($_POST['rek1'])) { echo "Nezaškrtl(a) jsi políčko s vylosovaným obrázkem."; } else { if (!isset($_POST['rek'])) { echo "Netipoval(a) jsi."; } else { if ($_POST['rek1'] == $_POST['rek']) { //pokud heslo souhlasi echo "Uhodl(a) jsi, losovaný obrázek byl ".$_POST['rek1']." a tvůj tip ".$_POST['rek'].". :-)"; } else { echo "<br /><br />Těsně vedle, zkus to znovu. ;-)<br />Losovaný obrázek byl ".$_POST['rek1']." a tvůj tip ".$_POST['rek']."."; } } } } ?> <form action="erbydotaz.php" method="post"> <?php $xxx = rand(1, 3); ?> <img src="<?php echo $xxx; ?>.gif" border="0" alt="<?php echo $xxx; ?>"> <br /> Zapamatuj si tento erb, zaškrtni políčko a stejně označ tento erb i na spodku stránky. <br /> <input type="checkbox" name="rek1" value="<?php echo $xxx; ?>"> <hr /> <br /> <img src="1.gif" alt="1" width="200" height="240" border="0" /> <input type="radio" name="rek" value="1" /> <img src="2.gif" alt="2" width="200" height="240" border="0" /> <input type="radio" name="rek" value="2" /> <img src="3.gif" alt="3" width="200" height="240" border="0" /> <input type="radio" name="rek" value="3" /> <br /> <br /> Vyber si prosím políčko a <input type="submit" name="odeslano" value="potvrď"> </form> |
||
Joker Profil |
#8 · Zasláno: 25. 7. 2010, 11:22:26 · Upravil/a: Joker
Maja:
„No že to nefunguje.“ Tak to bude rozbité. Upravil bych to podle doporučení viz xmark „Nejhorší je to - že se po každém kliknutí na tlačítko změní i ten první náhodný obrázek a tudíž je výsledek neregulerní.“ No to je jednoduché, v tomhle případě je potřeba negenerovat náhodné číslo, ale zobrazit to vygenerované z minula. jenikkozak „1. Mícháš prvky XHTML (lomítka na konci ‚nepárových‘ tagů) s klasickým HTML (<br>).“ No to je myslím jeden z nejmenších problémů toho kódu, resp. to ničemu nevadí. „2. Psát tři diakritická znaménka“ Myšleno asi interpunkční (diakritika = háčky, čárky a tak, interpunkce = tečky, otazníky, vykřičníky a tak) Jinak ale taky nechápu, kde tolik lidí pochytilo to psaní mezery před interpunkcí. Já to udělal v první třídě, v té době soudružka :) učitelka mi to škrtla a bylo. |
||
imploder Profil |
#9 · Zasláno: 25. 7. 2010, 12:10:48 · Upravil/a: imploder
Maja:
Oprava - takhle to bude fungovat: <form action="erbydotaz.php" method="Post"> <?php $xxx=rand(1, 3) ?> <img src="<?php echo "$xxx"; ?>.gif" border="0" alt="<?PHP ECHO "$xxx"; ?>"> <br> Zapamatuj si tento ERB, zaškrtni políčko a stejně označ tento erb i na spodku stránky !!! <br> <input type="checkbox" name="rek1" value="<?php echo $xxx?>"> <hr><br> <img src='1.gif' alt='1' width='200' height='240' border='0'/><input type="checkbox" name="rek" value="1"/> <img src='2.gif' alt='2' width='200' height='240' border='0'/><input type="checkbox" name="rek" value="2"/> <img src='3.gif' alt='3' width='200' height='240' border='0'/><input type="checkbox" name="rek" value="3"/> <br><br> Vyber si prosím políčko a <input type="submit" value="Potvrzuji"> <?php if($_POST['rek1']==$_POST['rek']) // pokud heslo souhlasi echo " Uhodl jsi - losovaný obrázek = ".($_POST['rek1'])." a můj typ = ".($_POST['rek'])." !!! "; else echo " <br><br> Těsně vedle :-(( <br> losovaný obrázek = ".($_POST['rek1'])." a můj typ = ".($_POST['rek'])." <br>"; ?> </form> Zbývá dodělat kontrolu, jestli jsou požadovaná políčka zaškrtnutá, jinak test nevyhodnocovat a upozornit uživatele, že formulář nevyplnil správně. Ještě dodám: sem se nehodí checkbox, na výběr jedné položky z několika je určený radiobutton - viz "Tři přepínací tečky (radio buttony), první vybraná:" tady |
||
Chro Profil |
#10 · Zasláno: 25. 7. 2010, 12:22:24
imploder:
Za echo $xxx ti chybí středník. |
||
panther Profil |
#11 · Zasláno: 25. 7. 2010, 12:24:26
Chro:
„Za echo $xxx ti chybí středník.“ nechybí, nemusí tam být v tomhle případě. |
||
imploder Profil |
#12 · Zasláno: 25. 7. 2010, 12:32:10
panther má pravdu.
|
||
Chro Profil |
#13 · Zasláno: 25. 7. 2010, 12:35:26
panther:
Další podstatná informace v mém životě, kterou se mi všichni báli říct. :-) Omlouvám se za planý poplach. |
||
Maja Profil * |
#14 · Zasláno: 25. 7. 2010, 13:06:39
dík, hodně jste mi s tím pomohli, a někteří i pobavili.
Na to že PHP skoro neumím a skript jsem skládal jak lego a byly tam jen dvě malé chyby - tak DOBRÝ NE? a ty mezery před ? ! - dělám proto že mám pocit že ten text líp dýchá. A taky nemám rád když se na mně někdo cizí lepí !!! Ještě jednou díky, je to tu dobrý web plný super lidí. Maja |
||
DoubleThink Profil * |
#15 · Zasláno: 25. 7. 2010, 13:18:06
Maja:
a ty mezery před ? ! - dělám proto že mám pocit že ten text líp dýchá. A taky nemám rád když se na mně někdo cizí lepí !!! Interpunkce přece není cizí :) V každém případě je to hrubá typografická chyba. |
||
Časová prodleva: 15 let
|
0