Javascript-forum
modal öffnen - Druckversion

+- Javascript-forum (https://javascript-forum.de)
+-- Forum: Entwicklung (https://javascript-forum.de/forumdisplay.php?fid=4)
+--- Forum: Javascript (https://javascript-forum.de/forumdisplay.php?fid=6)
+--- Thema: modal öffnen (/showthread.php?tid=1705)



modal öffnen - black79 - 22.10.2022

Code:
 function loeschen() {
  $('#myModal').modal('show'); 
  }
Code:
  <!-- The Modal -->
<div class="modal" id="myModal">
  <div class="modal-dialog modal-xl">
    <div class="modal-content">

      <!-- Modal Header -->
      <div class="modal-header">
        <h4 class="modal-title">Modal Heading</h4>
        <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
      </div>

      <!-- Modal body -->
      <div class="modal-body">
        Modal body..
      </div>

      <!-- Modal footer -->
      <div class="modal-footer">
        <button type="button" class="btn btn-danger" data-bs-dismiss="modal">Close</button>
      </div>

    </div>
  </div>
</div>

 wieso öffnet sich das Modal Fenster nicht?

Code:
  function loeschen() {
   alert("TEST");
  }

dieses Fenster "alert" geht


RE: modal öffnen - rzscout - 22.10.2022

Hi black79,
leider fehlt da noch Quelltext um zu verstehen welche jQuery-Plugins bzw. jQuery UI-Modals du verwendest.
Schreibe bitte doch alle relevanten Inhalte dazu hier in diesen Thread. Dann kann man besser nachvollziehen wo das Problem liegt.

PS: Du kannst mit Vanilla JS auch geeignete Modals erstellen. Dafür brauchst du kein jQuery. Das macht das ganze für die Performance besser und auch den Traffic.

Gruss


RE: modal öffnen - black79 - 22.10.2022

hier auf https://oesoft.de kannst Du mal schauen, warum das Löschen der Tabelle nicht funktoniert?

hier meine neue Lösung zum Modal-Fenster.

alles im Anhang


RE: modal öffnen - black79 - 22.10.2022

es liegt an Bootstrap v.5.2.1


RE: modal öffnen - black79 - 23.10.2022

habe jetzt wieder alles auf Boostrap 3 umgesetzt
habe trotzdem noch zwei Schönheitsfehler, vielleicht habt ihr noch eine Idee.

hier mein Link: https://oesoft.de

und zwar wenn sich die Tabelle aktualisiert (Prüfung alle 8 sec, wenn neuer Datensatz vorhanden, Tabelle aktualisieren) , wird das <div> verschoben? die (id="table") hängt aber an <table> und nicht am <div>

und wenn sich die Tabelle aktualisiert, zählt die Paginierung nicht mit?

was muss ichg ändern?


RE: modal öffnen - admin - 24.10.2022

(23.10.2022, 10:44)black79 schrieb: und zwar wenn sich die Tabelle aktualisiert (Prüfung alle 8 sec, wenn neuer Datensatz vorhanden, Tabelle aktualisieren) , wird das <div> verschoben? die (id="table") hängt aber an <table> und nicht am <div>
und wenn sich die Tabelle aktualisiert, zählt die Paginierung nicht mit?
was muss ichg ändern?

Ich weiß nicht, was du meinst.
Sie alles ganz gut aus (Optisch), doch vom Programmieren her machst du immer noch alles unnötig kompliziert.

Du holst immer noch alle 8 Sekunden sie komplette Seite neu , wozu?
Sind neue Daten da , holt man nur den Inhalt, der in <tbody></tbody> reinkommt.
Wenn keine neuen Daten da sind, holt man auch keine Daten neu, weil da ändert sich ja nichts dran.
Optimal wäre es wenn man das dann noch mit JSON macht, aber das ist erstmal Nebensache.

Deine Datei daten_holen.php zeigt Fehler von Php an.
Sowas sollte niemals öffentlich sein. Richtige Hacker können mit bestimmte angaben schon was anfangen.
Solche errors speichert man in der DB, oder in einer Datei, oder wenn man dran kommt, werden die irgendwo vom Anbieter schon gespeichert.

Wie gesagt, die Fehler, die da stehen sollte, keiner sehen.
Optimal wäre es, wenn das ganze Script ( in dein fall ) gestoppt wird.
Da die Abfrage auf neue Dateien jetzt sowieso nicht geht , 
weil durch die Fehlermeldung
Code:
                if(response != ausgabe){
                  ausgabe = response;
                  document.getElementById('infobox').innerHTML='<a style="color:green"># neue Daten werden geladen</a>';
                   $('#table').load(' table', function () {
                    $(this).unwrap();
                     });
                 }else{
                  document.getElementById('infobox').innerHTML='<a># zurzeit liegen keine neuen Daten vor</a>';
                 }
hier nie der else Zweig aufgerufen wird.


Erklär mal dein Problem mit den <div> und der Paginierung , weil kann da nichts finden


RE: modal öffnen - black79 - 24.10.2022

Zitat:Du holst immer noch alle 8 Sekunden sie komplette Seite neu , wozu?
Sind neue Daten da , holt man nur den Inhalt, der in <tbody></tbody> reinkommt.
Wenn keine neuen Daten da sind, holt man auch keine Daten neu, weil da ändert sich ja nichts dran.
Optimal wäre es wenn man das dann noch mit JSON macht, aber das ist erstmal Nebensache.
 

 das verstehe ich jetzt nicht, die Seite wird doch nicht alle 8 Sekunden neugeladen?
 
 alle 8 Sekunden wird geprüft, ob neue Daten vorhanden sind, wenn ja, wird: <id="table"> neugeladen mehr nicht. (aktualisiert)

 deshalb wird die Paginierung auch nicht aktualisiert! erst wenn die ganze Seite neugeladen wird.

Code:
    function refresh(){
      if( zeit <= 0){
       $.ajax({
            type: 'POST',
            url: 'daten_abholen.php',
            data:{},   
            success: function(response){
                if(response != ausgabe){
                  ausgabe = response;
                  document.getElementById('infobox').innerHTML='<a style="color:green"># neue Daten werden geladen</a>';
                   $('#table').load(' table', function () {
                    $(this).unwrap();
                     });
                 }else{
                  document.getElementById('infobox').innerHTML='<a># zurzeit liegen keine neuen Daten vor</a>';
                 }
                }
              });
            } else {
             zeit--;
             setTimeout(function(){
              document.getElementById('infobox').innerHTML='<a># prüfe Datenbank auf neue Daten in '+zeit+' Sekunden</a>';
              refresh()
            },1000)
        }
    }



RE: modal öffnen - admin - 27.10.2022

(24.10.2022, 17:06)admin schrieb: Deine Datei daten_holen.php zeigt Fehler von Php an.
Sowas sollte niemals öffentlich sein. Richtige Hacker können mit bestimmte angaben schon was anfangen.
Solche errors speichert man in der DB, oder in einer Datei, oder wenn man dran kommt, werden die irgendwo vom Anbieter schon gespeichert.

Wie gesagt, die Fehler, die da stehen sollte, keiner sehen.
Optimal wäre es, wenn das ganze Script ( in dein fall ) gestoppt wird.
Da die Abfrage auf neue Dateien jetzt sowieso nicht geht , 
weil durch die Fehlermeldung
Code:
                if(response != ausgabe){
                  ausgabe = response;
                  document.getElementById('infobox').innerHTML='<a style="color:green"># neue Daten werden geladen</a>';
                   $('#table').load(' table', function () {
                    $(this).unwrap();
                     });
                 }else{
                  document.getElementById('infobox').innerHTML='<a># zurzeit liegen keine neuen Daten vor</a>';
                 }
hier nie der else Zweig aufgerufen wird.

Da wurde alle 8 Sekunden neu geladen, weil durch die Fehlermeldung  die deine holen.php ausgegeben hat nie response != ausgabe 

Zustande kommen kann. Ob es ohne die Fehlermeldung richtig läuft, kann ich nicht sagen, weil deine Seite gerade wieder nicht geht.
Einfach mal in de Konsole schauen unter Netzwerk , dann siehst du was alle 8 Sekunden ankommt.

Laut dein Code kommt eine 0 , wenn keine neuen Daten da sind, und bei ungleich 0 alle Dateien neu.
Wenn PHP aber ein Fehler ausgibt, kann nie eine 0 gesendet werden. Du verstehst?
Ich bin zwar immer noch die Meinung das man nur die neuen Daten holen sollte , anstatt alle.
Es ist aber schon mal gut, dass du nur noch nach lädst, wenn neue da sind. Zwar holst du alles neu , aber besser als am, Anfang wo du alle  8 Sekunden alles neu geholt hast.
Stell mal deine Seite wieder online und behebe den Fehler, der aus der holen.php kam, damit wir den anderen Fehler finden können.
Eigentlich muss die Paginierung ja nicht neu geladen werden, die sagt ja nur das aus der DB bestimmte Datensätze aus der DB holt. Wenn du die Seite wechselst, werden automatisch die Daten aus der DB geholt, ob neu oder nicht.
Sobald deine Seite wieder online ist, gucke ich aber nochmal