Autor | Zpráva | ||
---|---|---|---|
Andrej.B Profil |
#1 · Zasláno: 6. 8. 2019, 20:23:22
Zdravim,
prisiel som na pekne zapracovanie updatov a insertov do DB cez modal bootstrap... (som trocha pozadu s modernostou) Snazim sa po vyvolani modal okna pridat novy zapis do databazy... Po napisani novej kategorie do inputu a stlaceni Uloz kategoriu mi zmizne okno a ulozi do databazy novy zapis ... Pokial kliknem znova na vyvolanie modal okna, budem tam mat hlasku, ze sa podarilo pridat novy zaznam, alebo ak je ta kategoria uz dana, tak chybovka, ze uj taky zaznam existuje... Ako vidite nieje to prave orechove... Funguje to tak, ked dam kod vo funkcie.php priamo do inventory.php... Ako docielit toho aby mi zostalo okno otvorene a po pridani zaznamu mi v nom vypisalo chybovu hlasku, alebo hlasku, ze bolo vsetko OK a bud sa mi zavrie okno a refresne sa mi sgtranka pod nim aj novou kategoriou, alebo moznost zavriet aj rucne.... Po gogleni a precitani desiatok odpovedi na stackoverflow by to malo ist cez ajax a kotrolovat tak, ze po kliknuti na Uloz kategoriu, to vlastne kontroluje cez ten ajax... Len to nedokazem nejako dat dokopy... inventory.php <!-- Button trigger modal --> <button type="button" class="btn btn-sm btn-outline-warning" data-toggle="modal" data-target="#exampleModal"> pridat </button> <!-- Modal --> <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalLabel">Vytvorenie kategorie</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <form id="gen_1" method="POST" action="" class="needs-validation" novalidate> <table class="table table-sm table-light"> <tr> <td> <input name="name_top_druh_inventory" class="form-control" id="name_top_druh_inventory" type="text" placeholder="nazov kategorie"></td> </tr> </table> </div> <div class="modal-footer"> <button class="btn btn-sm btn-outline-warning" type="submit" value="vytvor" id="sample" name="gen_1" title="vytvor">Uloz kategoriu</button> <script> $(document).ready(function () { $("submit#sample").click(function(e){ $.ajax({ type: "POST", url: "funkcie.php", // data: atd... neviem fdat dokopy } }); }); }); </script> </form> </div> </div> </div> </div> funkcie.php <?php if ($_POST['gen_1']== 'vytvor') { // kontrola vlozenych udajov od uzivatela $error_msg=''; if(trim($_POST['name_top_druh_inventory'])==''){ $error_msg.="vlozte nazov druhu materialu<br>"; } $name_top_druh_inventory = mysqli_real_escape_string($conn,$_POST['name_top_druh_inventory']); $sql = "SELECT * FROM top_druh_inventory WHERE name_top_druh_inventory = '".$name_top_druh_inventory."'"; $user_query = mysqli_query($conn, $sql); $numrows = mysqli_num_rows($user_query); if($numrows > 0){ $error_msg.="Nazov kategorie s nazvom <strong>".$name_top_druh_inventory."</strong> uz existuje<br>"; } if($error_msg=='') { $name_top_druh_inventory = mysqli_real_escape_string($conn,$_POST['name_top_druh_inventory']); $sql = "INSERT INTO top_druh_inventory ( id_top_druh_inventory, name_top_druh_inventory ) VALUES ( NULL, '$name_top_druh_inventory' )"; if (!mysqli_query($conn, $sql)) { echo " Errorky: - " . $sql . "" . mysqli_error($conn); } else // ak je vsetko po vlozeni v poriadku, zobrazime hlasku o uspesnom vlozeni { echo " <strong>Vyborne! </strong></ br> "; echo "Novy druh bol zapisany :)"; } } else { echo " <p> </p> <h3>Chybajuce informacie z formulara</h3><p class=\"text-danger\">$error_msg</p>"; } } ?> |
||
Kajman Profil |
#2 · Zasláno: 6. 8. 2019, 23:59:34
funkcie.php může např. vracet http stavový kód značící chybu (např. 404), pokud k chybě dojde a klasickou 200 jen, pokud se to uloží.
Metodě ajax pak můžete předat jinou funkci pro success a jinou pro error. Případně použít promise. |
||
Ikki Profil |
#3 · Zasláno: 7. 8. 2019, 10:33:24
Nestačilo by směřovat refresh na MODAL?
|
||
Časová prodleva: 5 let
|
0