Autor Zpráva
vetrnicek
Profil
Zdravím! Pokouším se vytvořit školní e-learning. Potřebuji udělat formulář, ve kterém si žák zvolí kategorii (např. ČJ) a po zvolení této kategorie se automaticky pod ním zobrazí další "subformulář" pro upřesnění další kategorie (např. výběr: mluvnice, sloh, čtení) a po zvolení se objeví zase další "subformulář" (např. vyjmenovaná slova, vlastní jména,...) atd. Vytvořit samotný formulář ještě snad zvládnu. Vím, že bude třeba použít něco jako

<form method="post" action= "skriptkterypotrebuju.php">
<select><option>ČJ</option>
             <option>M</option>
             <option>AJ</option></select></form>


atd.

Nevím si ale rady s PHP skriptem, který formulář zpracuje a docílí tedy také potřebného zobrazení subformulářů. V PHP se vyznám opravdu jen málo, proto mě prosím neodkazujte na teorii, díval jsem se třeba na články www.linuxsoft.cz, ale stejně mi to nepomohlo. Prosím tedy, zda byste mi někdo neukázal alespoň trochu konkrétnější příklad tohoto skriptu.

Příklad takového zpracování formulářů, který potřebuji je např. zde. (Ten vpravo).

Děkuji všem za odpovědi.
Alphard
Profil
V PHP stačí zpracovat první první formulář a tím zjistit, co se má zobrazovat dále. Pak stačí někde (pevné pole, soubor, databáze) vzít seznam dalších hodnot a vypsat je do selectu.
vetrnicek
Profil
Alphard:

Díky, ale já právě nevím, jak má vypadat ten PHP skript, který ten formulář zpracuje, prostě jestli bys mi ukázal kód toho skriptu, který zpracuje ten první formulář. Ten skript chci uložit přímo na server, bez použití databáze. Potřebuju příklad jakéhokoli formuláře, který mi po zpracování zobrazí ten subformulář. Jestli je můj dotaz moc obecný a ten skript moc pracný, tak se omlouvám a vykašli se na to, nechci tě zatěžovat nějakým dlouhým programováním, nevím totiž, jak moc je to náročné...
Alphard
Profil
Příklad, v praxi bych to takhle nepoužil :-)
<?php

function createSelect($name, $options, $default = null)
{
  $out = "<select name=\"$name\">\n";
  foreach ($options as $key => $value)
  {
    $out .= "<option value=\"$key\" ".($key==$default?" selected=\"selected\"":"").">$value</option>\n";
  }
  $out .= "</select>\n";
  return $out;
}

$q = array("yes" => "Ano", "no" => "Ne");
$p = array("JAVA", "PHP", "C++", "C++", "Lisp");
$b = array("Matematika", "Fyzika", "Chemie", "Literatura");

?>

<form method="post">
  Programujete rádi?
  <?php echo createSelect('question', $q, !empty($_POST['question'])?$_POST['question']:'')?>
  <?php
    if (!empty($_POST['question']))
    {
      switch ($_POST['question'])
      {
        case 'yes': echo "Jaká je váš oblíbený jazyk? ".createSelect('p', $p); break;
        case 'no': echo "Tak co rádi děláte, ".createSelect('b', $b); break;
      }
    }

  ?>
  <input type="submit" value="Odeslat">
</form>
vetrnicek
Profil
Alphard:

Díky moc, funguje to! Takhle mi to úplně stačí, ostatní už doladím. Jsi zlatej! P.S.: Hádej, jakou z těch dvou možností (Programujete rádi?) jsem vybral? :-)

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