Autor | Zpráva | ||
---|---|---|---|
Jan Žák Profil |
#1 · Zasláno: 6. 4. 2015, 16:38:25
Dobrý den všem, chtěl bych požádat o pomoc s tímto problémem. Mám script pro smazání záznamu:
$(document).ready(function() { $(".delete").click(function(){ var del_id = $(this).attr("id"); var info = 'id=' + del_id; var tr_id = $(this).closest("tr"); if(confirm("Chystáte se odstranit peněžní ústav. Jste si jistí?")) { $.ajax({ type: "POST", url: "ajax/bank-delete.php", data: info, success: function(response){ $("#message").append(response); tr_id.fadeOut(500, function () { tr_id.remove(); }); }, }); } return false; }); }); // we remove the record $result = mysql_query("DELETE b FROM bank b LEFT JOIN company c ON c.bank_name_id = b.id WHERE b.id = ". (int)$id . " AND c.id IS NULL") or die (mysql_error()); if ($result == 1) { report('odstranil/a peněžní ústav <strong>'.$bank_name.'</strong>'); echo "<div class=\"alert\" style=\"margin-top: 10px;\">Peněžní ústav byl odstraněn!</div>"; } else { report('se pokusil/a odstranit peněžní ústav <strong>'.$bank_name.'</strong>'); echo "<div class=\"alert\" style=\"margin-top: 10px;\">Peněžní ústav nebyl odstraněn! Zkontrolujte návazné položky (Firmy), které mohou být k peněžnímu ústavu přiřazeny!</div>"; } smazání záznamu proběhne v pořádku i s vypsáním hlášky z echo. Pokud záznam smazat nelze, protože je jinde použit, ke smazání nedojde, ale zobrazí se stejná hláška, že záznam byl odstraněn. Pro znovunačtení stránky se záznam znovu objeví. Jak toto ošetřit, prosím mám ošetřit, když ke smazání nedojde, aby script vypsal hlášku v else? Děkuji moc za cenné rady. |
||
Alphard Profil |
#2 · Zasláno: 6. 4. 2015, 18:31:39
|
||
Jan Žák Profil |
Alphard:
Děkuji za radu, posunul jsem se trošku dále, nyní dojde ke smazání a vypsání hlášky, že záznam byl smazán. Pokud použiji záznam, který je již použit v jiné tabulce, dojde k vypsání také spávné hlášky že nebyl odstraněn, ale ajax mi tento záznam také skryje, a po znovunačtení se znovu objeví. Tuším že bude chyba někde zde: success: function(response){ $("#message").append(response); tr_id.fadeOut(500, function () { tr_id.remove(); }); }, |
||
Keeehi Profil |
#4 · Zasláno: 6. 4. 2015, 22:16:21
Musíš si tam toho posat víc, třeba pomocí pole zakódovaného do JSONu.
if ($result == 1) { report('odstranil/a peněžní ústav <strong>'.$bank_name.'</strong>'); echo json_encode(['status' => true, 'message' => "<div class=\"alert\" style=\"margin-top: 10px;\">Peněžní ústav byl odstraněn!</div>"]); } else { report('se pokusil/a odstranit peněžní ústav <strong>'.$bank_name.'</strong>'); echo json_encode(['status' => false, 'message' => "<div class=\"alert\" style=\"margin-top: 10px;\">Peněžní ústav nebyl odstraněn! Zkontrolujte návazné položky (Firmy), které mohou být k peněžnímu ústavu přiřazeny!</div>"]); } success: function(response){ var data = JSON.parse(response); $("#message").append(data['message']); if(data['status']) { tr_id.fadeOut(500, function () { tr_id.remove(); }); } }, |
||
Monkeys Profil * |
#5 · Zasláno: 6. 4. 2015, 22:23:39
Jan Žák:
Uz som to tusim niekde pisal pri testovani a vyvoji VZDY pouzivajte Firebug. Usetri vam to kopu casu a problemov. Dalej co sa tyka vasho problemu vypiste si navratovu hodnotu z php ako alert(success); //vo vasom pripaade response ak volate data v podobe json teda v php mate echo json_encode(...); v ajaxe treba json zakomentovat inak vam to pri alerte nevrati nic.
dufam ze som pomohol M. |
||
Jan Žák Profil |
#6 · Zasláno: 7. 4. 2015, 17:52:49
Keeehi:
Děkuji Ti velice za pomoc i Vám ostatním, funguje jak má, zase jsem se naučil něčemu novému :) Hezký den. |
||
Časová prodleva: 9 let
|
0