Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Form e Ajax

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    162

    Form e Ajax

    Salve,
    ho un problema legato ad Ajax e un form a cui è applicato il codice: dovrei cancellare un record di una tabella del DB, i valori vengono scelti attraverso due select, in cui la scelta della prima determina i campi della seconda.
    Nel momento in cui eseguo il form e passo i valori alla pagina successiva, il valore della seconda select (quello riempito dall'Ajax) risulta essere sempre vuoto.
    Vi posto il codice di seguito:
    -FORM:
    codice:
            Response.Write("<table>")
             Response.Write("<form method='post' name='form' action='cancella_tagliacolore2.asp?prod_id="& Request.QueryString("prod_id")&"'>")
            Response.Write("<tr>")
            Response.Write("<td align=center>")
    
            Response.Write("<font face='Verdana' color=white>Seleziona Taglia/Colore da cancellare</font>")
            Response.Write("</td>")
            Response.Write("</tr>")
            Response.Write("<tr>")
            Response.Write("<td height=20% style='background-color:'900000'; color:white'>")
    
            
                    
            dim var
                                                
            Set conn = Server.CreateObject("ADODB.Connection")
            conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath(".") & "/xxx.mdb"
    
            SQL=""
            SQL=SQL & "Select * from Dettagli "
            SQL=SQL & "Where [Det_ProID]='"& Request.QueryString("prod_id") &"'"
    
            Set rs = Server.CreateObject("ADODB.Recordset")
            rs.Open sql, conn, 3, 3 
            
            Response.Write("<font color='white'>Taglia: </font><select size=1 cols=4 NAME='taglia' id='taglia' onchange=javascript:popolaElemento(this.value,"""& Request.QueryString("prod_id") &""")>")
            Response.Write("<OPTION selected Value=Seleziona>Seleziona")
                                                    
        
            Do While Not rs.EOF
                var=rs("Det_Taglia")
                Response.Write("<OPTION value='"& var &"'> "& var &" ")
                
                rs.MoveNext
            Loop
            
            rs.Close
            set rs = Nothing
    
    
            Response.Write("</select>")
            Response.Write("</td>")
            Response.Write("</tr>")
    
            Response.Write("<tr>")
            Response.Write("<td height=20% style='background-color:'900000'; color:white'>")
            Response.Write("<font color='white'>Colore: </font><span id='selectColore'>")
            Response.Write("<select size=1 cols=4 NAME='colore' id='colore'>")
    
            Response.Write("</select>")
            Response.Write("</span>")
    
            Response.Write("</td>")
            Response.Write("</tr>")
    
            Response.Write("<tr>")
            Response.Write("<td height=20% style='background-color:'900000'; color:white'><span id='selectQuantita'>")
            Response.Write("<font color='white'>Quantità: </font><input type=""text"" name=""qnt"")>")
            Response.Write("</span>")
    
            Response.Write("</td>")
            Response.Write("</tr>")
    
             Response.Write("<tr>")
            Response.Write("<td height=20% style='background-color:'900000'; color:white'>")
            Response.Write("<input type='submit' value='Cancella'>")
    
            Response.Write("</td>")
            Response.Write("</tr>")
            Response.Write("</form>")
            Response.Write("</table>")
    - AJAX:
    codice:
    var x;
    
    function createRequestObj(){ // creo un'istanza XMLHttpRequest
            var re;
            var browser=navigator.appName;
            if (browser=="Microsoft Internet Explorer"){ // sniff browser
                    re=new ActiveXObject("Microsoft.XMLHTTP");
            } else re=new XMLHttpRequest();
            return re;
    }
    
    
    var http=createRequestObj();
    
    function popolaElemento(par1,par2){ // faccio una richiesta
            //alert(par2); // debug
            //popola_luoghi();
            x=par1;
            var y=par2 ;
            var url="popola.asp?taglia=" + x + "&prod_id=" + y + "" ;
            //alert(url);
            http.open('get', url , true)
            document.getElementById('selectColore').innerHTML="<select><option value=\"0\">caricamento in corso...</option></select>";
            http.onreadystatechange=function(){
                    if (http.readyState==4 || http.readyState=="complete"){
                            if (http.status == 200){
                             //alert(http.responseText)
                                    document.getElementById('selectColore').innerHTML=http.responseText;
                            } else {
                                    document.getElementById('selectColore').innerHTML="<select><option>ERRORE "+http.status+"</option></select>";
                            }
                    }
            }
            http.send(null);
    
    }

    - POPOLA.asp
    codice:
      Set conn = Server.CreateObject("ADODB.Connection")
            conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath(".") & "/xxx.mdb"
                
            
            SQL=""
            SQL=SQL & "Select * from Dettagli Where "
            SQL=SQL & "[Det_Taglia]='" & Request.QueryString("taglia") &"'"
            SQL=SQL & " AND [Det_ProID]='" & Request.QueryString("prod_id") &"'"
            
            Set rs = Server.CreateObject("ADODB.Recordset")                  
            rs.Open sql, conn, 3, 3
            'Response.Write(SQL)
    
    
             Response.Write("<select size=""1"" cols=""3"" name=""colore"" id=""colore"">")
            Response.Write("<OPTION Selected Value=Seleziona>Seleziona</option>")
    
            Do While Not (rs.EOF)
    
            Response.Write("<OPTION Value="& rs("Det_Colore") &">"& rs("Det_Colore") &"</option>")
    
            rs.MoveNext
            Loop
    
            Response.Write("</select>")
    
    
            rs.Close
            set rs = Nothing
            conn.Close 
            set conn = Nothing
    Per favore se c'è qualcuno che ne capisce un po' di piu di me di Ajax se puo darmi una mano.
    Grazie 1000.

    Ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    162
    UP!

  3. #3
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    In questo forum si parla di javascript: ripulisci il codice dall'ASP che contiene postando solo cio' che riceve il browser, il resto non e' attinente al problema.

    ciao

    ps: comunque tu fai riferimento ad un oggetto che non esiste:

    document.getElementById('selectColore')

    mentre nella pagina c'e':

    <select size=1 cols=4 NAME='colore' id='colore'>
    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

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    162
    Mi devi scusare x il codice non pulito.

    Il riferimento che tiro in ballo esiste: <span id=selectColore> è lì dentro che carico i dati della select.

    In ogni caso ho provato a riempire direttamente le option della select, cambiando in <select id=selectColore> ma mi dà lo stesso risultato.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    162
    Non so come ho fatto xo ci sono riuscito.

    Sicuramente xche ho portato fuori dalla table l'enunciazione del form.
    Incredibile!


    LOCK

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.