Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Ajax - variabile nulla dà errore

    Ho un semplice script ajax che interroga una pagina php. La pagina php ritorna una stringa così formattata
    nome_elemento_div|contenuto_elemento_div
    che viene poi interpretata da ajax.

    Il mio problema è che la pagina php, a volte non ritorna niente.

    Lo script ajax, però, si aspetta di ricevere nome_elemento_div|contenuto_elemento_div e pur funzionando correttamente, se vado nella consolle degli errori ho questo errore

    Errore: document.getElementById(update[0]) is null
    File sorgente: http://localhost/BusinessOnline_2/aj...equest_ajax.js
    Riga: 29

    Lo script ajax è questo. Ho messo in grassetto la parte dello script che mi dà errore. Penso che devo semplicemente dire con javascript che se document.getElementById(update[0]).innerHTML è nullo, non devo ritornare niente.


    // Questo file esegue richieste asincrone per + applicazioni

    function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
    ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
    ro = new XMLHttpRequest();
    }
    return ro;
    }
    var http = createRequestObject();

    function sndReq(action,file) {
    http.open('get', file+'?action='+action);
    http.onreadystatechange = handleResponse;
    http.send(null);
    }

    function handleResponse() {
    if(http.readyState == 4){
    var response = http.responseText;
    var update = new Array();

    if(response.indexOf('|' != -1)) {
    update = response.split('|');
    document.getElementById(update[0]).innerHTML = update[1];

    }
    }
    }

    Se qualcuno sta cercando di costruirsi una sua chat in ajax e php che interroghi il db solo quando è stata postato un nuovo messaggio, mi segnali il suo post. Ne sto costruendo una molto semplice e perfettamente funzionante, non fosse che per questo errore!

  2. #2
    Mi rispondo da solo: dovevo pensarci ancora un po' su

    Ecco la soluzione

    function handleResponse() {
    if(http.readyState == 4){
    var response = http.responseText;
    var update = new Array();
    if(response){
    if(response.indexOf('|' != -1)) {
    update = response.split('|');
    document.getElementById(update[0]).innerHTML = update[1];
    }
    }
    }
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.