Veröffentlicht 20. Februar 20178 j Hallo zusammen! Ich auf einer Webseite einen Button, die eine Javascript-Funktion ausführt. Diese Javascript-Funktion greift Daten von einer Datenbank ab und gibt diese später per Alert aus. Bei der ersten Ausführung der Funktion wird der aktuelle Wert aus der DB gelesen. Ändert sich aber nun der Wert in der DB und betätige ich nochmal den Button, wird wieder der gleiche Wert ausgegeben und nicht der aktuelle. Jemand eine Idee was man dagegen machen kann, bzw. wie sich dieses Problem lösen lässt? Erst nach löschen des Caches im IE wird der aktuelle Wert ausgegeben.
20. Februar 20178 j vor 4 Minuten schrieb murat1895: Jemand eine Idee was man dagegen machen kann, bzw. wie sich dieses Problem lösen lässt? Erst nach löschen des Caches im IE wird der aktuelle Wert ausgegeben. Richtig programmieren wäre ein Weg. Zeig doch mal deinen Code.
20. Februar 20178 j Ich vermute mal schwer, dass nicht das JS die Daten abruft (das geht afaik ohne Plugins (ActiveX oder so) auch gar nicht und wäre komplett unsicher, da man JS lesen kann und somit Passwörter, Datenbanknamen usw. alles sehen könnte), sondern dass sie von PHP aus an JS übergeben werden. Die Frage wäre nun, was beim Aufruf des Buttons passiert. Wird eine Variable ausgelesen, oder wirklich jedes Mal eine Datenbankverbindung aufgebaut und der Inhalt des entsprechenden Feldes an JS weitergereicht? Ich tippe eher drauf, dass das es einmal aus der Datenbank ausgelesen und in einer Variablen gespeichert wird und du danach immer nur einfach diese Variable ausliest, statt wirklich auf die Datenbank zuzugreifen bei jedem Aufruf. Eventuell gibt es ja eine Überprüfung, ob die Variable bereits befüllt ist und nur falls nicht wird die Datenbankverbindung aufgebaut. Um das wissen zu können, müssten wir aber den Code sehen. Alles andere sind nur Vermutungen.
20. Februar 20178 j Autor Hier der Button: <input type="button" id="btnTest" value="test" onclick="test('<?php echo URL?>','<?php echo $id?>')"> Hier die JS-Funktion function test(url, id){ $.get(url+'controller/methode/'+id, function (o){ alert(o.Sitzplaetze); }, 'json'); } Im Prinzip ist es das. Oder wollt ihr die Controller-Methode sowie dann die DB-Abfrage aus dem Model auch noch sehen, aber ich denke daran wird s nicht liegen, da die Ergebnisse ja richtig sind.
20. Februar 20178 j Du kannst .ajax(); statt .get(); benutzen. Dann kannst du der Funktion Parameter geben, unter anderem ob das Ergebnis gecached werden soll oder nicht. http://stackoverflow.com/questions/8841425/how-to-set-cache-false-in-jquery-get-call Bearbeitet 20. Februar 20178 j von PVoss
20. Februar 20178 j Willkommen in den Untiefen des Browsercaches! Wenn du sicher bist dass du weiter auf diesem Pfad wandeln willst, dann folge PVoss.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.