Externe PHP Variable an Javascript übergeben.

  • Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Andal91

Neues Mitglied
5 März 2019
7
1
3
27
Hallo zusammen,

ich würde gerne mit ein externes PHP Script ausführen, mir eine Variable daraus holen und einem div hinzufügen.

Momentan ersetzte ich den Inhalt vom div "shoutbox" mit den aktuellen Daten, die ich mit der shoutbox.php auslese.

Code:
let refresh = setInterval(function() {
    $("#shoutbox").load("shoutbox.php");
}, 3000);
Dass funktioniert auch nur wird immer der gesamte Inhalt neu geladen, was man auch sieht. Ich möchte nur die neuen Einträge dem hinzufügen und brauche somit die letzte ID aus der shoutbox.php. aber wie kann ich mir die holen?

Danke
 

Sempervivum

Senior HTML'ler
18 Oktober 2016
1.346
271
83
66
Ich gehe mal davon aus, dass dein PHP-Skript die Einträge in HTML-Form liefert und dass Du mit "Variable" ein Element darin, z. B. ein Div, meinst. Und dass diese Elemene jeweils eine eindeutige ID haben. Dann ist es relativ einfach: Das HTML vom PHP-Skript in einen temporären Container laden. Dann alle Elemente darin in einer Schleife abarbeiten; ist das Element schon vorhanden, nichts tun (ich gehe davon aus, dass sich in einer Shoutbox die Einträge nicht nachträglich ändern). Ist es noch nicht vorhanden, das Element in den Container einfügen.

Effizienter wäre es jedoch, wenn Du nicht jedesmal alle Elemente vom Server holst, sondern nur die, die hinzu gekommen sind. Dazu müsstest Du die ID des letzten Elementes an das PHP-Skript übergeben und in diesem Skript entspr. auswerten.
 

Andal91

Neues Mitglied
5 März 2019
7
1
3
27
Hi Sempervivum,

danke erstmal. Ja so kann ich mir das gut vorstellen, aber was meinst du mit temporären Container? Bzw. wie kann man sowas realisieren?
 

Sempervivum

Senior HTML'ler
18 Oktober 2016
1.346
271
83
66
Dafür gibt es mehrere Möglichkeiten: Das einfachst ist, einen verborgenen Container im HTML-Text anzulegen. Einfach im Dokument:
Code:
<div id="temp-container"></div>
<style>
    #temp-container {
        display: none;
    }
<style>
<script>
let refresh = setInterval(function() {
    $("#temp-container").load("shoutbox.php", function() {
        // Dann die neuen Einträge in den sichtbaren Container übertragen    
    });
}, 3000);
</script>
 
Zuletzt bearbeitet:
Reactions: Andal91

Sempervivum

Senior HTML'ler
18 Oktober 2016
1.346
271
83
66
Einen solchen Container kannst Du jedoch auch als Javascript-Variable anlegen:
JavaScript:
var tempContainer = $("<div></div>");
let refresh = setInterval(function() {
    tempContainer.load("shoutbox.php", function() {
        // Dann die neuen Einträge in den sichtbaren Container übertragen    
    });
}, 3000);
// Dann die neuen Einträge in den sichtbaren Container übertragen
 
Zuletzt bearbeitet:
Reactions: Andal91

Sempervivum

Senior HTML'ler
18 Oktober 2016
1.346
271
83
66
Oder Du kannst auch mit $.parseHTML den HTML-Text umwandeln und in einer Variablen ablegen.
 
Reactions: Andal91
Werbung:

Latest posts