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

    ASP, Javascript e vettori

    ciao a tutti,
    devo scrivere una pagina ASP che recupera delle righe da una tabella e costruisce un vettore Javascript. La cosa sembra funzionare, il vettore JS viene riempito correttamente. Ma quando esco dalla query e provo a leggere i dati sul vettore, mi accorgo che tutte le righe create sono state resettate all'ultimo valore recuperato con la query.
    Dove sbaglio? Come posso sincronizzare gli script lato client e server in modo da non perdere i valori?

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    posta un po' di codice

  3. #3
    è un bel casotto, ma ci provo.Spero di essere chiaro
    <%
    ...
    SQL = "select valore from tabella where cond"
    rs.open SQL,conn
    if not rs.eof then
    %>
    <script>
    var numrighe = "<%=rs.recordcount%>";
    var vett = new Array(numrighe);
    <%
    pos = 0
    while not rs.eof
    val = rs(0)
    %>
    v_pos = "<%=pos%>";
    vett[v_pos] = "<%=val%>"
    alert(vett[v_pos]); (Mi restituisce il valore corretto)
    <%
    rs.movenext
    wend
    %>
    //Controllo elementi del vettore
    for (i=0;i<numrighe;i++)
    {alert(vett[i]);}
    </script>
    <%
    end if
    rs.close
    ....
    %>

    Dagli alert mi sono accorto che durante la scansione del recordset il vettore viene inizializzato correttamente. Ma all'uscita dalla scansione del recordset, gli alert del ciclo for mi restituiscono per ogni i vett[i] = ultimo valore recuperato da rs!
    Ci sto uscendo pazzo

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    prova così
    codice:
    <%
    ...
    SQL = "select valore from tabella where cond"
    rs.open SQL,conn
    if not rs.eof then
    %>
    <script>
    var vett = new Array();
    <%
    while not rs.eof
    val = rs(0)
    %>
    vett[vett.length] = "<%=val%>"
    <%
    rs.movenext
    wend
    %>
    //Controllo elementi del vettore
    for (i=0;i<vett.length;i++)
    {alert(vett[i]);}
    </script>
    <%
    end if
    rs.close
    ....
    %>

  5. #5
    niente da fare, maremma....
    continua ad azzerare tutto

  6. #6
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    molto strano :master:
    hai qualcosa online da vedere? Hai controllato bene?

  7. #7
    Da questo codice che hai mandato tu, ti dimentichi di incrementare l'indice del vettore, prova a fare come ho evidenziato in grassetto.

    codice:
    <% 
    ... 
    SQL = "select valore from tabella where cond" 
    rs.open SQL,conn 
    if not rs.eof then 
    %> 
    <script> 
    var numrighe = "<%=rs.recordcount%>"; 
    var vett = new Array(numrighe); 
    <% 
    pos = 0 
    while not rs.eof 
    val = rs(0) 
    %> 
    v_pos = "<%=pos%>"; 
    vett[v_pos] = "<%=val%>" 
    alert(vett[v_pos]); (Mi restituisce il valore corretto) 
    <% 
    pos = pos + 1 
    rs.movenext 
    wend 
    %> 
    //Controllo elementi del vettore 
    for (i=0;i<numrighe;i++) 
    {alert(vett[i]);} 
    </script> 
    <% 
    end if 
    rs.close 
    .... 
    %>

  8. #8
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    dichiarando l'array così
    codice:
    var vett = new Array()
    con questa sintassi
    codice:
    vett[vett.length] = "<%=val%>"
    l'indice si aggiorna automaticamente senza bisogno di altri contatori

  9. #9
    Le vostre soluzioni funzionano, ma temo di aver semplificato troppo il problema. In realtà sto lavorando con un vettore multidimensionale, una matrice nx3, ed è qui che nasce l'inghippo.
    Comunque grazie per l'aiuto. Se avete qualche idea fatemi sapere

  10. #10
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    se non posti un po' di codice che idee possono venirci?

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