Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Problema con IE7 e una funzione AJAX

    Ciao ragazzi!

    Ancora una volta IE7 fa i capricci...

    Provo a spiegarvi la situazione. In una pagina c'è un suggeritore tipo google suggest a partire dal quale viene selezionato il nome di una persona. Quando questa viene selezionata, una funzione in ajax recupera i dati della persona e li mostra subito a schermo tramite l'inner HTML.

    Mentre su Firefox funziona tutto correttamente, su IE7 appare "Error reading the response [object error]]". Il problema è legato ai campi in cui ci sono i contatti, che vi allego.

    codice:
    	<fieldset>
      	<legend>Contatti</legend>
      	
            <div id="email"><label for="dati_email">Email</label><input id="dati_email" name="dati_email" type="text" value="" READONLY/></div>
            <div id="telefono_fisso"><label for="dati_telefono_fisso">Telefono fisso</label><input id="dati_telefono_fisso" name="dati_telefono_fisso" type="text" value="" READONLY/></div>
    
            <div id="telefono_cellulare"><label for="dati_telefono_cellulare">Dati telefono cellulare</label><input id="dati_telefono_cellulare" name="dati_telefono_cellulare" type="text" value="" READONLY/></div>
            <div id="fax"><label for="dati_email">Email</label><input id="dati_fax" name="dati_fax" type="text" value="" READONLY/></div>          
      </fieldset>
    ecco la funzione incriminata in ajax
    codice:
    function handleServerResponseDatiRubrica()
    {
      // read the message from the server
      var xmlResponse = xmlHttp2.responseXML;
      // obtain the XML's document element
      xmlRoot = xmlResponse.documentElement;
    
      //sto omettendo il codice degli altri campi perché funzionano  
    
      //recupero i valori di email e li stampo su schermo
      emailRubrica = xmlRoot.getElementsByTagName("email");  
      
      email = document.getElementById("email");
      
      //sembra che non vada bene la riga precedente perché il codice successivo a questo commento non viene eseguito
    
      n = 1;
      email.innerHTML = '';
      for(var i=0; i<emailRubrica.length; i++){
        num_email = (n>1) ? n : '';
        input = '<div><label for="email_'+ n +'">Email '+ num_email +'</label><input id="email_'+ n +'" name="email_'+ n +'" type="text" value="'+ emailRubrica.item(i).firstChild.data +'" READONLY/></div>';
        n = n + 1;
        email.innerHTML += input;
      }
      
      //recupero i valori di telefono fisso e li stampo su schermo
      telefonoFissoRubrica = xmlRoot.getElementsByTagName("telefono_fisso");
      
      telefono_fisso = document.getElementById("telefono_fisso");
      
      n = 1;
      telefono_fisso.innerHTML = '';
      for(var i=0; i<telefonoFissoRubrica.length; i++){
        num_telefono_fisso = (n>1) ? n : '';
        input = '<div><label for="telefono_fisso_'+ n +'">Telefono fisso '+ num_telefono_fisso +'</label><input id="telefono_fisso_'+ n +'" name="telefono_fisso_'+ n +'" type="text" value="'+ telefonoFissoRubrica.item(i).firstChild.data +'" READONLY/></div>';
        n = n + 1;
        telefono_fisso.innerHTML += input;
      }  
    
      //recupero i valori di telefono cellulare e li stampo su schermo
      telefonoCellulareRubrica = xmlRoot.getElementsByTagName("telefono_cellulare");
      
      telefonoCellulare = document.getElementById("telefono_cellulare");
      
      n = 1;
      telefonoCellulare.innerHTML = '';
      for(var i=0; i<telefonoCellulareRubrica.length; i++){
        num_telefono_cellulare = (n>1) ? n : '';
        input = '<div><label for="telefono_cellulare_'+ n +'">Telefono cellulare '+ num_telefono_cellulare +'</label><input id="telefono_cellulare_'+ n +'" name="telefono_cellulare_'+ n +'" type="text" value="'+ telefonoCellulareRubrica.item(i).firstChild.data +'" READONLY/></div>';
        n = n + 1;
        telefonoCellulare.innerHTML += input;
      }  
    
      //recupero i valori di fax e li stampo su schermo
      faxRubrica = xmlRoot.getElementsByTagName("fax");
      
      fax = document.getElementById("fax");
      
      n = 1;
      fax.innerHTML = '';
      for(var i=0; i<faxRubrica.length; i++){
        num_fax = (n>1) ? n : '';
        input = '<div><label for="fax_'+ n +'">Fax '+ num_fax +'</label><input id="fax_'+ n +'" name="fax_'+ n +'" type="text" value="'+ faxRubrica.item(i).firstChild.data +'" READONLY/></div>';
        n = n + 1;
        fax.innerHTML += input;
      }  
    
    
    
      
      
      
    }
    Grazie
    Disegnatori e romanzieri d'Italia, visitate il mio sito, cerchiamo favolieri dark ed illustratori dark fantasy... http://www.neilgaimania.it

  2. #2
    UP
    Disegnatori e romanzieri d'Italia, visitate il mio sito, cerchiamo favolieri dark ed illustratori dark fantasy... http://www.neilgaimania.it

  3. #3
    Ciao,
    siccome funziona su FF, sicuramente non è dovuto al codice: le interfacce che usi per estrarre i dati sono supportate da IE(potresti provare con un IE6).

    Quindi deve essere un altra la causa, per esempio
    secondo me, utilizzando la proprietà responseXML IE si aspetta un documento XML e nel
    tuo, che è well-formed XML, manca l'intestazione XML:
    <?xml version="1.0" encoding="UTF-8"?>

    Ciao
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

  4. #4
    Ciao Mirko, grazie per la risposta. Il documento xml è ben formato, non è quello il problema.

    Facendo delle prove ho scoperto che la riga incriminata è questa

    email.innerHTML = '';

    e di conseguenza questa

    email.innerHTML += input;

    ci sono dei problemi noti con innerHTML e IE7?
    Disegnatori e romanzieri d'Italia, visitate il mio sito, cerchiamo favolieri dark ed illustratori dark fantasy... http://www.neilgaimania.it

  5. #5
    No, assolutamente,
    io la uso spesso per garantirmi che alcuni script funzionino si su IE che FF.
    La uso esattamente come fai te.
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

  6. #6
    :master:

    ho fatto questa prova

    email = document.getElementById("email");
    email.innerHTML = 'Ciao';

    risultato?

    errore!

    forse hai ragione te, ci sarà qualcosa nel file xml... mò ricontrollo!
    Disegnatori e romanzieri d'Italia, visitate il mio sito, cerchiamo favolieri dark ed illustratori dark fantasy... http://www.neilgaimania.it

  7. #7
    Niente... ho provato anche con Safari e funziona tranquillamente...

    ecco il file xml

    codice:
    <?xml version="1.0"?>
    <corsista><nome>Nome</nome>
    <cognome>Cognome</cognome>
    <id_titolo>4</id_titolo>
    <codice_fiscale>AFDFRR4545454F4F</codice_fiscale>
    <partita_iva>2147483647</partita_iva>
    <giorno_nascita>5</giorno_nascita>
    <mese_nascita>8</mese_nascita>
    <anno_nascita>1947</anno_nascita>
    <id_provincia>32</id_provincia>
    <id_titolo_studio>11</id_titolo_studio>
    <id_professione>14</id_professione>
    <note>note</note>
    <comune>Acquarica del capo</comune>
    <email>email</email>
    <telefono_fisso>N.D.</telefono_fisso>
    <telefono_cellulare>N.D.</telefono_cellulare>
    <fax>N.D.</fax>
    </corsista>
    Disegnatori e romanzieri d'Italia, visitate il mio sito, cerchiamo favolieri dark ed illustratori dark fantasy... http://www.neilgaimania.it

  8. #8
    l'XML è corretto.

    Prova ad utilizzare i try/catch(e) e magari riesci a capire meglio che cosa succede.
    Se s solleva un'eccezione magari ti da informazioni migliori di quelle di IE.
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

  9. #9
    Ok provato con un try catch. risultato:

    proprietà o metodo non supportati dall'oggetto

    e perché mai?

    Disegnatori e romanzieri d'Italia, visitate il mio sito, cerchiamo favolieri dark ed illustratori dark fantasy... http://www.neilgaimania.it

  10. #10
    Non mi viene in mente niente .....

    Hai provato a riavviare?
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

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.