Visualizzazione risultati 1 fino 2 di 2

Discussione: Aggiornare un <div> senza refresh generale della pagina

  1. #1
    Guest

    Predefinito Aggiornare un <div> senza refresh generale della pagina

    Come da titolo vorrei sapere se esiste qualche javascript che permette di fare un re-load del contenuto di un div, senza aggiornare tutta la pagina, ogni certo tanto di tempo!

    ho cercato su Google ma niente che mi ha aiutato

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,253

    Predefinito

    quello che vuoi usare è XMLHttpRequest(). Una volta inscatolata in una funzione cross-browser come questa (rubata non ricordo dove, probabilmente da Dustin Diaz)
    Codice PHP:
    function createXMLHttpRequest() {
    req = false;
    // branch for native XMLHttpRequest object
    if(window.XMLHttpRequest) {
    try {
    req = new XMLHttpRequest();
    } catch(
    e) {
    req = false;
    }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
    try {
    req = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(
    e) {
    try {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(
    e) {
    req = false;
    }
    }
    }
    return
    req;
    }
    puoi usarla per richiamare una tua pagina che restituisca il nuovo contenuto del div

    Codice PHP:
    function nuovoContenuto(elemento, pagina, parametri) {
    var
    req = createXMLHttpRequest();

    if (!
    req) return true;

    req.open('GET', 'http://' + pagina +'?' + parametri, true);

    req.onreadystatechange = function() {
    if (
    req.readyState == 4) {
    if (
    req.status == 200) {
    if (
    req.responseText != '') {
    elemento.disabled = true;
    elemento.innerHTML = req.responseText;
    }
    } else {
    alert('Ellole!');
    }
    }
    }

    fill.disabled = true;
    req.send(null);
    return
    false;
    }
    la richiesta è asincrona (da cui la A di AJAX), quindi la crei, la lanci, e come parametro gli lasci una funzione da eseguire quando termina, e non da errore. Questa contiene elemento.innerHTML = ... che prende il testo ricevuto con la chiamata e lo sostituisce al contenuto corrente dell'elemento, nel tuo caso del div.

    Ah, il div lo recuperi con document.getElementById('id-del-div').
    Ultima modifica di dreadnaut : 29-10-2008 alle ore 21.18.35

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •