Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di abellos
    Registrato dal
    Feb 2002
    Messaggi
    434

    [ajax] ajax e select non funzionanti a dovere

    Ciao sto imparando ajax e seguendo questa guida http://antirez.com/articoli/spaghettiajax.html ho realizzato questo esempio che mi servirebbe anche per lavoro ma ho il seguente problema:

    Ho due pagine combo.asp e contenitore.htm

    Combo.asp:
    codice:
    <%
    
    path = Server.MapPath("./combo.mdb")
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open("Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & path)
    
    SQL = "SELECT * FROM combo ORDER BY id"
    set RS = server.CreateObject("ADODB.Recordset")
    
    rs.Open sql,conn
    
    while not rs.EOF
    	response.Write "<option value="& RS("id") &">"& RS("testo") &"</option>"
    	rs.MoveNext
    wend
    
    rs.Close
    set rs=nothing
    conn.Close
    set conn=nothing
    %>
    Semplicemente carica dei valori da un database access e li scrive nella pagina,

    Contenitore.htm

    codice:
    <HTML><HEAD>
    </HEAD>
    <script language="javascript">
    var myRequest = null;
    
    function CreateXmlHttpReq2(handler) {
      var xmlhttp = null;
      try {
        xmlhttp = new XMLHttpRequest();
      } catch(e) {
        try {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e) {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
      }
      xmlhttp.onreadystatechange = handler;
      return xmlhttp;
    }
    
    function myHandler2() {
    	
        if (myRequest.readyState == 4 && myRequest.status == 200) {
    		alert(myRequest.responseText);
            document.getElementById("sel").innerHTML = myRequest.responseText;
            
        }
    }
    
    function test(){
    	myRequest = CreateXmlHttpReq2(myHandler2);
    	myRequest.open("GET","combo.asp");
    	myRequest.send(null);
    }
    
    
    </script>
    <BODY>
    <input type="button" onclick="test()">
    
    <div id="vis">
    
    </div>
    
    <form action="c.asp" method="get">
    <select id="sel" name="sel" ><option value="-">------</option></select>
    
    <input type="button" value="vai" onclick="javascript:alert(document.getElementById('sel').innerHTML);">
    </form>
    </BODY></HTML>
    Che in teoria dovrebbe prendere il contenuto della pagina combo.asp e metterlo nel tag select con id "sel".

    Questo con Firefox funziona a dovere, ma mi servirebbe proprio usarlo anche su Internet Explorer 5,6 e successivi (sul 7 e 8 non ho ancora avuto occasione di provarlo).
    Il problema e' che con Firefox la pagina combo.asp viene recuperata in modo esatto visualizzando la select con i seguenti valori :

    <option value=1>ciao</option>
    <option value=2>prova</option>
    <option value=3>sono ajax</option>
    <option value=4>simone</option>
    <option value=5>cucu</option>
    <option value=6>bhu</option>
    <option value=7>settete</option>
    <option value=8>funziono</option>
    <option value=9>mi leggi</option>
    <option value=10>sono un test di combo</option>

    Invece su Internet explorer viene troncato il primo "<option value=1>" dell'elenco sopra e mi rimane:

    ciao</option>
    <option value=2>prova</option>
    <option value=3>sono ajax</option>
    <option value=4>simone</option>
    <option value=5>cucu</option>
    <option value=6>bhu</option>
    <option value=7>settete</option>
    <option value=8>funziono</option>
    <option value=9>mi leggi</option>
    <option value=10>sono un test di combo</option>

    e nella select non viene visualizzato un bel niente.
    Potete aiutarmi ? ciao e scusate se son stato prolisso.
    Grazie
    abe
    Da un grande potere derivano grandi responsabilità

  2. #2
    ma se chiami con Explorer combo.asp direttamente nel browser cosa visualizzi (come codice HTML)
    I DON'T Double Click!

  3. #3
    Utente di HTML.it L'avatar di abellos
    Registrato dal
    Feb 2002
    Messaggi
    434
    visualizzo questo:

    <option value=1>ciao</option><option value=2>prova</option><option value=3>sono ajax</option><option value=4>simone</option><option value=5>cucu</option><option value=6>bhu</option><option value=7>settete</option><option value=8>funziono</option><option value=9>mi leggi</option><option value=10>sono un test di combo</option>

    che e' corretto quindi l'ajax si mangia qualcosa
    Da un grande potere derivano grandi responsabilità

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Un po di tempo fa ho avuto lo stesso problema, ho risolto sostituendo tutta la select, invece d'aggiungere le option.
    Vado a memoria ma il motivo credo sia dovuto al fatto che ie identifica le select in modo diverso e non un componente del form.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it L'avatar di abellos
    Registrato dal
    Feb 2002
    Messaggi
    434
    ok va bene ma come faccio a sostituire la select?
    Da un grande potere derivano grandi responsabilità

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Aggiungi un div nella pagina e completi la select, il principio e identico.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it L'avatar di abellos
    Registrato dal
    Feb 2002
    Messaggi
    434
    perfetto grazie mille!
    Da un grande potere derivano grandi responsabilità

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.