Autor | Zpráva | ||
---|---|---|---|
Jiří Ráb Profil |
#1 · Zasláno: 5. 2. 2019, 17:49:56
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 |
#2 · Zasláno: 5. 2. 2019, 18:14:20
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 |
#6 · Zasláno: 5. 2. 2019, 22:29:18
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 |
#7 · Zasláno: 5. 2. 2019, 23:24:55
ok
|
||
Kajman Profil |
#8 · Zasláno: 6. 2. 2019, 00:21:09
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 |
#9 · Zasláno: 6. 2. 2019, 08:00:15
Ikki:
Ten tvůj kód je taky peklo. Syntaktické chyby, nedefinovane proměnné, sql injection... |
||
Ikki Profil |
#10 · Zasláno: 6. 2. 2019, 08:36:36
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 |
#11 · Zasláno: 6. 2. 2019, 08:44:11
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. |
||
Časová prodleva: 6 let
|
0