it-swarm.com.de

Wie aktualisiere ich einen DIV-Inhalt?

<div id='here'></div>

Ich versuche, ein bestimmtes div innerhalb einer Reihe von divs aufzufrischen. Der Div-Inhalt wird im Wesentlichen von PHP zusammen mit Daten aus einer MySQL-Datenbank generiert, zusätzlich zu vielen Variablen, die mithilfe eines XMLHttpRequest-Objekts gesendet werden. 

Die Idee ist, das div selbst neu zu laden/zu aktualisieren und keine PHP-Datei zu laden oder sie mit .text oder .html zu überschreiben. In diesem Fall kann ich .load('file.php') nicht verwenden.

Was ich versucht habe: 

<script type='text/javascript'>
    function updateDiv()
    { 
        document.getElementById("here").innerHTML = document.getElementById("here").innerHTML ;
    } 
</script>

und (für eine Aktualisierung alle 3 Sekunden):

$(document).ready(function () {
    setInterval(function () {
        $('#here').load('#here'));
    }, 3000);
});

Im Idealfall würde ich so etwas verlangen:

function reloadDIV () {document.getElementById("here").innerHTML.reload}

function reloadDIV () {$('#here').load(self)} 

damit ich es in einem onClick verwenden kann:

<a onclick='reloadDIV ();'>reload div</a>
8
cyberion1985

Um einen Abschnitt der Seite erneut zu laden, können Sie jquerys load mit der aktuellen URL verwenden und das gewünschte Fragment angeben. Dies ist dasselbe Element, für das load aufgerufen wird. In diesem Fall #here:

function updateDiv()
{ 
    $( "#here" ).load(window.location.href + " #here" );
}

Diese Funktion kann innerhalb eines Intervalls aufgerufen oder an ein Klickereignis angehängt werden

16
Steve

Sie können jQuery verwenden, um dies mit der einfachen $.get-Methode zu erreichen. .html funktioniert wie innerHtml und ersetzt den Inhalt deines div.

$.get("/YourUrl", {},
      function (returnedHtml) {
      $("#here").html(returnedHtml);
});

Und rufen Sie dies mit der JavaScript-Methode setInterval auf.

0
Neha Jain