Autor Zpráva
Jiří Ráb
Profil
Ahoj chtěl jsem se vás zeptat mám rezervace tabulku a a z ní vypisuji tyto rezervace do tabulky a chtěl jsem se jak to udelat abych když jednotlivé rezervace mám na řádku a dal bych na každy řádek dat button na smazaní jak to udělat aby se smazal ten záznam. Dík za pomoc
Ikki
Profil
Pokud máš například ID pro každý záznam, tak v případě že vypisuješ záznamy do tabulky, tak pouze přidej klasický HTML button a dodej mu vyvolání funkce pro smazání. Variantou je například i odkaz <a href="smazání?id=$id">Smazat</a> kdy ve funkci vytáhneš id pomocí GET, ale nejspíše bych volil lepší a bezpečnější metodu.
Jiří Ráb
Profil
ahoj zkoušel jsem to pomocí formu ale je problém že ve formu nemám pokud dám input do <td></td> tak mi ho to neukazuje ve formu ale mimo nej


foreach ($minule as $value) {
            echo"<tr class='zaznam'>";
            echo "<form action='rezervace_vyber.php' method='post'>";
            if (is_array($value)) {
                foreach ($value as $value2) {
                    echo'<td>'.$value2.'</td>';
                }
            }

            echo "<td><input type='checkbox' required='Vyplnte' name='delete_row' value=".$value["id_rezervace"]."></td>";
            echo "<td><input type='submit' name='delete_submit' value='Odeslat'></td>";
            echo "</form>";
            echo "</tr>";
        }



i když v kodu je to v nem vee formu tak v prohlízeci je to mimo form


[img]file:///C:/Users/jirka/Desktop/php.PNG[/img]


drive.google.com/file/d/1lev3oRDtM7n-PqRXTtn-4qu_5qQgWw77/view?usp=sharing


posílam cely kod který mi vypisuje tabulku


<?php
require_once('uzivatel.class.php');
session_start();
var_dump($_POST);

if (isset($_POST['typ_rezervace'])) {
    if ($_POST['typ_rezervace']=='minule_rezervace') {
        $minule=$_SESSION['uzivatel']->minuleRezervace();
        echo "<table cellspacing='0' id='reservation_table'>
    <tr id='main_zaznam'>
      <th>ID_rezervace</th>
      <th>Letadlo</th>
      <th>Pocet osob</th>
      <th>Čas  a datum odletu</th>
      <th>Délka letu</th>
      <th>Cena letu (Kč)</th>
      <th>Stav rezervace</th>
      <th>Výběr</th>
      <th>Smazat</th>
    </tr>
    ";
        foreach ($minule as $value) {
            echo"<tr class='zaznam'>";
            echo "<form action='rezervace_vyber.php' method='post'>";
            if (is_array($value)) {
                foreach ($value as $value2) {
                    echo'<td>'.$value2.'</td>';
                }
            }

            echo "<td><input type='checkbox' required='Vyplnte' name='delete_row' value=".$value["id_rezervace"]."></td>";
            echo "<td><input type='submit' name='delete_submit' value='Smazat'></td>";
            echo "</form>";
            echo "</tr>";
        }
        echo "</table>";
    }

    if ($_POST['typ_rezervace']=='aktualni_rezervace') {
        $aktualni=$_SESSION['uzivatel']->aktualniRezervace();
        echo "<table cellspacing='0'  id='reservation_table'>
    <tr id='main_zaznam'>
      <th>ID_rezervace</th>
      <th>Letadlo</th>
      <th>Pocet osob</th>
      <th>Čas  a datum odletu</th>
      <th>Délka letu</th>
      <th>Cena letu (Kč)</th>
      <th>Stav rezervace</th>
      <th>Výběr</th>
      <th>Smazat</th>

    </tr>
    ";
        foreach ($aktualni as $value) {
            echo"<tr class='zaznam'>";
            echo "<form action='rezervace_vyber.php' method='post'>";
            if (is_array($value)) {
                foreach ($value as $value2) {
                    echo'<td>'.$value2.'</td>';
                }
            }
            echo "<td><input type='checkbox' required='Vyplnte' name='delete_row' value=".$value["id_rezervace"]."></td>";
            echo "<td><input type='submit' name='delete_submit' value='Smazat'></td>";
            echo "</form>";
            echo "</tr>";
        }
        echo "</table>";
    }
}



delal jsem to podle videa na youtube
www.youtube.com/watch?v=YOkhHdwtDjU
Ikki
Profil
if (isset($_POST['typ_rezervace'])) {
    if ($_POST['typ_rezervace']=='minule_rezervace') {
        $minule=$_SESSION['uzivatel']->minuleRezervace();
        echo "<table cellspacing='0' id='reservation_table'>
    <tr id='main_zaznam'>
      <th>ID_rezervace</th>
      <th>Letadlo</th>
      <th>Pocet osob</th>
      <th>Čas  a datum odletu</th>
      <th>Délka letu</th>
      <th>Cena letu (Kč)</th>
      <th>Stav rezervace</th>
      <th>Výběr</th>
      <th>Smazat</th>
    </tr>
    ";
        foreach ($minule as $value) {
            echo"<tr class='zaznam'>";
            if (is_array($value)) {
                foreach ($value as $value2) {
                    echo'<td>'.$value2.'</td>';
                }
            }
 
            echo "<td><input type='checkbox' required='Vyplnte' name='delete_row' value=".$value["id_rezervace"]."></td>";
            echo "<td><a href="?smazat=".$value["id_rezervace"].">Smazat</a></td>"; // Upraveno na odkaz pro lepší přehlednost.
            echo "</tr>";
        }
        echo "</table>";
    }

a přidám podmínku pro GET

if($_GET['smazat']){ $db = "DELETE FROM /Tabulka/ WHERE id=".$_GET['smazat'].""; }

Je to řekl bych asi nejjednodušší možné řešení. Každopádně je to pouze ilustrace, nikoli kompletní kód.
Jiří Ráb
Profil
dík moc ale stejne nechapu proc mi to nejde když mu to na tom video jde?


Vypada to jako by html nepodporovalo mit form v radku tabulky
Ikki
Profil
Tvůj kód jsem nijak extrémně nestudoval, ale je možné že tam je nějaká chyba ve vyvolání funkce, špatně nastavený form či jiné. Odepisuju z mobilu, tak promiň :D
Jiří Ráb
Profil
ok
Kajman
Profil
Jiří Ráb:
Vypada to jako by html nepodporovalo mit form v radku tabulky

Ano, nepodporuje.
a) udělejte jeden form kolem tabulky
b) dejte form až do buňky tabulky
c) tabulku nepoužívejte a zformátujte data jinak
d) nepoužívejte form


Ať už použijete formulář nebo jen odkaz, používejte tokeny, např. dle
Automatická obrana proti CSRF
Tomášeek
Profil
Ikki:
Ten tvůj kód je taky peklo.

Syntaktické chyby, nedefinovane proměnné, sql injection...
Ikki
Profil
Tomášeek:
Jaké mé chyby?
1. Upozornil jsem že tam není ochrana ani nic podobného.
2. Opravit to na mobilu s bugem od JPW.cz je taky sranda.
3. To není můj kód, ale jeho a já mu ho pouze názorně upravil, není k užitku, ale k názoru.

Pokud tedy nemáš nic objektivního co bych neuvedl v některém z komentářů, tak si odpusť své nízko intelektové dodatky, díky a měj se.
Tomášeek
Profil
Ikki:
1. pak je to kód na draka.
3. Chyby jsou v te tebou dodané časti.

Ad zbytek. Jsi vtipný, radsi si hlídej kvalitu odpovědi.

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