Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615

    [Ajax] Errore sul testo restituito

    Carissimi,
    credo si tratti di un problema molto banale. In un form ho due tabelle nazione e provincia. Selezionando la nazione, in modo asincrono si popolano i valori della tabella provincie con quelle compatibili con la nazione selezionata.

    Alla selezione di una nazione si scatena la funzione javascript

    codice:
    function ajaxTest1(nazione) {
        myRequest = CreateXmlHttpReq(ajaxTest2);
        myRequest.open("GET","ServletProvincieSelect?jKey=" + jk + "&_="+-new Date, true);
        myRequest.send(null);
    }
    che chiama in causa la funzione javascript

    codice:
    function ajaxTest2() {
        var jRef = "provincia";
        var myTable = document.getElementById(jRef + "-table");
        document.getElementById(jRef + "-box").value = '';
        document.getElementById(jRef).value = '';
        
        for (ti = 0; ti < myTable.rows.length; ti++){
           myTable.deleteRow(ti);
        }
        if (myRequest.readyState == 4 && myRequest.status == 200) {
        var dom_txt = myRequest.responseText;
        var dom_rows = dom_txt.split("|");
        for (var ri = 0; ri < dom_rows.length - 1; ri ++){     
           var myTr = document.createElement("tr");
           var dom_cols = dom_rows[ri].split("_");
           for (var ci = 0; ci < dom_cols.length; ci++){
              var myTx = document.createTextNode(dom_cols[ci]);
              var myTd = document.createElement("td");
              if (ci < 3){
                 myTd.className="styItemHidden";
              }
              myTd.appendChild(myTx);
              myTr.appendChild(myTd);
           } 
           myTable.appendChild(myTr);
           }
        }
    }
    Sorvolando sul meccanismo di splittaggio, popolamento e di creazione tabella, che almeno su FF funziona, vi segnalo un'anomalia: la console degli errori di Firefox segnala, all'atto della selezione della nazione, un errore (errore errore, non warning). Ovvero, mi dice:

    codice:
    Errore: errore di sintassi
    File sorgente: http://localhost:8180/myapplication/...-1267866833418
    Riga: 1, Colonna: 1
    Codice sorgente:
    Amstetten_Amstetten_1_Amstetten|Baden_Baden_2_
    segue la lista del testo restituito da Ajax, con la serie di tutte le provincie, e con una freccia sul primo carattere. Quasi come se la console degli errori si attendesse qualche istruzione trovando invece del testo generico. La situazione non cambia racchiudendo il testo tra virgolette. Sono sicuro che si tratta di una banalità, focalizzata nel punto in cui il software "interpreta" il testo restituito da Ajax senza "capire" che è appunto testo e non codice e che quindi non deve "offendersi" se non lo riconosce come tale indicando un errore di sintassi. Inoltre, mentre su FF l'unico effetto è quello di "far offendere" la console degli errori, su IE8 tali funzioni proprio non vanno.

    Come risolvere? Grazie a tutti.

  2. #2
    mmm ti da errore quando selezioni qualunque nazione o solamente alcune? In caso controlla se quelle su cui ti da errore contengono apostrofi

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615
    Nessun apostrofo. La soluzione era banale: dopo diversi tentativi mi sono detto: se compare quell'errore, è perché formalmente il testo non è corretto. E che tipo di testo è? Xml!

    Allora nel testo restituito dalla servlet ho aggiunto l'intestazione
    codice:
    out.println("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>");
    out.println("<catalog>");
    e relativa chiusura di catalog e tutto funziona. Lo posto, sperando possa servire a qualcuno. Sono sempre un pò incerto invece per l'altro quesito, nessuno ha lumi?

    Grazie

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 © 2025 vBulletin Solutions, Inc. All rights reserved.