Autor Zpráva
Benycz
Profil *
Čaute,
mám soubor, do kterého jsou zapisovány hodnoty, které zadá uživatel (jméno, příjmení, hodnocení). Potřebuju, aby se tyto hodnoty vypsaly a za každým polem se vytvořil checkbox. Jakmile by uživatel zaškrtl checkbox, tak by po odeslání došlo ke smazání pole. S tím si ale nevím rady.
Lehce osekaný kód vypadá následovně:

<form action=hodnoceni.php>
          Jmeno <input type=text name=jmeno><br>
          Prijmeni­ <input type=text name=prijmeni><br>
          Hodnoceni <input type=text name=hodnoceni size=5><br><br>         
          <input type=radio name=typ value=vyhledat checked="checked">Vyhledat<br>
          <input type=radio name=typ value=pridat>Pridat<br>
          <input type=radio name=typ value=smazat>Smazat<br><br>
          <input type=submit value=Odeslat>
  </form>
    <?php
    if(isset($_GET["jmeno"]) OR isset($_GET["prijmeni"]) OR isset($_GET["hodnoceni"])) {
     if($_GET["typ"]=="vyhledat") {
        $soubor=fopen("zapis/seznam.txt", "r");
        while (list ($prijmeni2, $jmeno2, $hodnoceni2) = fscanf ($soubor, "%s %s %d")) {
        if (($_GET["prijmeni"]==$prijmeni2 OR $_GET["prijmeni"]=="") AND ($_GET["jmeno"]==$jmeno2 OR $_GET["jmeno"]=="") 
        AND ($_GET["hodnoceni"]==$hodnoceni2 OR $_GET["hodnoceni"]=="")) {
        echo $prijmeni2." ".$jmeno2." ".$hodnoceni2. "<br>"; }
        } 
        fclose($soubor);
        }
      
      else if ($_GET["typ"]=="pridat") {
        $soubor=fopen("zapis/seznam.txt", "a");
        fwrite($soubor, $_GET["prijmeni"]." ".$_GET["jmeno"]." ".$_GET["hodnoceni"]."\n"); 
        fclose($soubor);
        echo "Přidán(a)"." ".$_GET["prijmeni"]." ".$_GET["jmeno"]." ".$_GET["hodnoceni"]."\n";
        }
     else {
        $soubor=fopen("zapis/seznam.txt", "r");
    while (list ($prijmeni2, $jmeno2, $hodnoceni2) = fscanf ($soubor, "%s %s %d")) {
         echo $prijmeni2." ".$jmeno2." ".$hodnoceni2."<INPUT type=checkbox name=chb>"."<br>";
         
          // ZDE KÓD PRO VYMAZÁNÍ
        
         fclose($soubor);
        }
?>
Luky
Profil
Já bych to vyřešil tak, že každý prvek by byl nějak pojmenovaný v SESSION. Například pole jméno by bylo: SESSION['name'].
Ve výpisu formu by se pak dalo použít:
If ($_SESSION['name'] == 1) echo 'Jméno: <input type=text name="jmeno"><br>';
If ($_SESSION['surname'] == 1) echo 'Příjmení: <input type=text name="prijmeni"><br>';
Všechny SESSION ze začátku budou mít hodnotu 1 a pokud je budeš chtít odstranit z formu, tak stačí do toho tvého kódu na vyhodnocení přidat:
$_SESSION['name'] = 0;
(nebo třeba ze začátku SESSION nemusí existovat a zkoušet pouze existenci SESSION prvku.
Není to zrovna elegantní řešení, ale dá se to ;)

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