Autor Zpráva
Maja
Profil *
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
No a co máš za problém? (kromě chybějící tečky před "gif" na řádku 5)
Maja
Profil *
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
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
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
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
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
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
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
imploder:
Za echo $xxx ti chybí středník.
panther
Profil
Chro:
Za echo $xxx ti chybí středník.
nechybí, nemusí tam být v tomhle případě.
imploder
Profil
panther má pravdu.
Chro
Profil
panther:
Další podstatná informace v mém životě, kterou se mi všichni báli říct. :-)
Omlouvám se za planý poplach.
Maja
Profil *
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 *
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0