Deschidere modal html din js

Am acest modal care primeste continutul dintr-un alt fisier php cu ajax

   <div class="modal modal-mytheme fade" id="ModalDynamic" role="dialog"> 
       <div class="modal-dialog modal-lg">
           <!-- Modal content-->
           <div class="modal-content">
               <div class="modal-header">
                   <h5 class="modal-title">Modal</h5>
                   <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                       <span aria-hidden="true">&times;</span>
                   </button>
               </div>
               <div class="modal-body" id="DivModalBodyDynamic">
               </div>
               <div class="modal-footer">
                   <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">Close</button>
               </div>
           </div>
       </div>
   </div>

    $jsDocumentReady .= '
$("#BtModalDynamic").on("click", function() {
  $.ajax({
    url: "'.$config['URL'].'/sections/ajax-calls/ajax/ajax_openmodal.php", type: "POST", data: {valoare:"demo"},
    success: function(data) {
      $("#DivModalBodyDynamic").empty().html(data);
    }
  });   
});

Pot deschide acest modal cu cu acest button html

<button type="button" class="btn btn-outline-danger" data-dismiss="modal" id="BtModalDynamic">'Open Modal</button>

Vreau sa il deschid din dintr-un button javascript

Am incercat asa:

AttackOnBall.MenuState.prototype.onGamecenter = function() {
  $("#BtModalDynamic").modal("show");
}

Modalul se deschide dar nu primeste si continutul din ajax_openmodal.php
Ce as putea sa fac?

Salut!

  1. Folosește consola pentru developeri din browser. Deschide-o cu CTRL + SHIFT + C.
  2. Apasă butonul care nu face ce vrei.
  3. Verifică dacă ai erori în consolă (în tab-ul “Console”). Verifică și tab-ul “Network”, să vezi dacă s-a făcut POST la link-ul corect. Poți vedea și răspunsul dacă dai click pe link.

Dacă tot nu înțelegi unde e problema:

  1. Printează în browser link-ul la care trebuie să se facă POST. Ai putea să folosești alert("'.$config['URL'].'/sections/ajax-calls/ajax/ajax_openmodal.php"); înainte de codul $.ajax...
  2. Accesează link-ul în browser și vezi ce se întâmplă dacă pui în fișierul ajax_openmodal.php, la început, $_POST['valoare'] = 'demo';. Ar trebui să vezi ce conținut primești.

Problema ta reală nu e că nu funcționează un buton, ci că nu știi să faci debug, ca să înțelegi de unde pleacă problema.

2 Likes

Eu as folosi Events de la Modal pentru a face acel ajax request, si nu m-as lega de buton.

$('#ModalDynamic').on('show.bs.modal', function (e) {
    $.ajax({ ... });
})
1 Like

Am rezolvat. A trebuit sa pun ajax in butonul js

AttackOnBall.MenuState.prototype.onGamecenter = function() {
  $.ajax({
    url: "'.$config['URL'].'/sections/ajax-calls/ajax/ajax_openmodal.php", type: "POST", data: {valoare:"demo"},
    success: function(data) {
      $("#DivModalBodyDynamic").empty().html(data);
    }
  }); 
$("#ModalDynamic").modal("show");