Autor Zpráva
Andrej.B
Profil
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">&times;</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>&nbsp;</p>
                        <h3>Chybajuce informacie z formulara</h3><p class=\"text-danger\">$error_msg</p>"; 
                        
                        }

}        
?>
Kajman
Profil
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
Nestačilo by směřovat refresh na MODAL?

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