web-dev-qa-db-fra.com

Comment actualiser un contenu DIV?

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

J'essaie de rafraîchir un certain div au sein d'un groupe de divs. Le contenu div est essentiellement généré par PHP avec les données d'une base de données MySQL, ainsi que de nombreuses variables envoyées à l'aide d'un XMLHttpRequest. 

L'idée est de recharger/actualiser la div elle-même et de ne pas charger un fichier php ou de l'écraser avec .text ou .html. Dans ce cas, je ne peux pas utiliser .load('file.php')

Ce que j'ai essayé 

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

et (pour un rafraîchissement toutes les 3 secondes):

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

Idéalement, j'aurais besoin de quelque chose comme:

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

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

afin que je puisse l'utiliser dans un onClick:

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

Pour recharger une section de la page, vous pouvez utiliser jquerys load avec l'URL actuelle et spécifier le fragment dont vous avez besoin, qui serait le même élément sur lequel load est appelé, dans ce cas #here:

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

Cette fonction peut être appelée dans un intervalle ou attachée à un événement click

16
Steve

Vous pouvez utiliser jQuery pour y parvenir en utilisant la méthode simple $.get. .html fonctionne comme innerHtml et remplace le contenu de votre div.

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

Et appelez ceci en utilisant la méthode javascript setInterval.

0
Neha Jain