Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    74

    problema explorer 8 con innerhtml/ajax

    Ciao a tutti,
    ho creato una select le cui options vengono inserite dinamicamente con innerhtml attraverso una chiamata ajax. La select viene riempita correttamente sia con firefox che con ie 8 (con un piccolo trucco che ho trovato in rete), però, quando chiedo il n. delle opzioni presenti nella select con firefox ho la risposta corretta, mentre con ie il n. risulta zero. Sapete indicarmi se c'è una soluzione? Vi posto il codice. Grazie mille...

    function crea_ordinamento(opzioni_sel)
    {

    var my_url="archivio_report.php";//pagina origine dati chiamata con ajax
    var sel_dest=document.getElementById("ordinamento");
    var sel_testata=document.getElementById("crit_testata" );
    var sel_report=document.getElementById('report');
    var index_report=sel_report.selectedIndex;
    var message_opzioni_sel;
    var descr_report = sel_report.options[sel_report.selectedIndex].text;//ricava il nome del report salvato nel db (tabella t_tip_report)
    var lungh_ordinamento;

    //verifica se il parametor opzioni_sel è stato passato oppure no e, di conseguenza, crea la stringa da accodare
    //alla variabile message
    if (opzioni_sel!='undefined')
    {
    message_opzioni_sel="&selezione="+opzioni_sel;
    }else{
    message_opzioni_sel='';
    }

    var message="pagina_web="+document.getElementById('rep ort').options[index_report].value+message_opzioni_sel+"&descrizione_report="+ descr_report;

    //richiesta ajax
    if (window.XMLHttpRequest)
    {
    request=new XMLHttpRequest();
    }else{
    request=new ActiveXObject("Microsoft.XMLHTTP");
    }

    if (request)
    {
    request.open("POST",my_url);
    request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    request.onreadystatechange=
    function()
    {
    if (request.readyState == 4)
    {

    //codice innerhtml cross browser
    if(document.all) //IE
    {
    //Aggiunge una opzione fittizia
    var opts = "<option>opzione</option>" + request.responseText;

    //Riempie select box
    sel_dest.innerHTML=opts;

    //Forza refresh della select box in IE
    sel_dest.outerHTML = sel_dest.outerHTML;
    alert(request.responseText);

    }else{ //browser normali

    //Risposta Ajax senza aggiunte
    sel_dest.innerHTML=request.responseText;
    //alert(request.responseText);
    }
    lungh_ordinamento=sel_dest.length;//determina quante opzioni contiene la select ordinamento
    alert(sel_dest.length);
    }


    }
    request.send(message);
    }else{
    alert("Il tuo browser non è abilitato per l'utilizzo di ajax");
    }


    }

    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    74
    ...non c'è nessuno che può aiutarmi per favore? Sono bloccata se non riesco a trovare una soluzione. Grazie.

  3. #3
    Ciao. Mi intrufolo in questo post, perchè c'è una cosa di cui ho bisogno: Quale è il trucco su ie per il riempimento di una option (su richiesta ajax)??? .......PS: questa cosa è citata nel primo post

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da marcocampoli
    Ciao. Mi intrufolo in questo post, perchè c'è una cosa di cui ho bisogno: Quale è il trucco su ie per il riempimento di una option (su richiesta ajax)??? .......PS: questa cosa è citata nel primo post
    Non si fa... inoltre hai gia' una discussione sull'argomento
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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.