17 messaggi dal 29 novembre 2001
Salve a tutti,

io ho una pagina ASP con un form ti TOT righe e ad ogni riga una
CheckBox. in fondo il mio bel tasto Salva.

Ora, per ogni riga ci sono 3 valori da aggiornare più il 4° che è L'ID
assegnato alla CheckBox. Quando premo il tasto salva Quindi, mi
restituisce un stringa con tutti i valori... ora, io devo creare un
Array dei soli valori con ID (CheckBox si true) come posso fare? Avete
consigli?

la form praticamente è questa:

ID=14753&Campo1=XXX&Campo2=YYY&Campo3=ZZZZ&ID=14754&Campo1=XXXX.
1&Campo2=YYY&Campo3=ZZZZ&ID=14755&Campo1=XXXX.
2&Campo2=YYYY&Campo3=ZZZZ&Campo1=XXXX&Campo2.......


Come vedete ad un certo punto nn è più specificato l'ID perchè in
quelle righe nn è stato selezionato il Check....

Mi serve prelevare i dati in questo modo:

ID=14753
Campo1=XXX
Campo2=YYY
Campo3=ZZZZ

ID=14754
Campo1=XXXX
&Campo2=YYY
Campo3=ZZZZ

ID=14755
Campo1=XXXX
Campo2=YYYY
Campo3=ZZZZ

e poi fare un recordset con Update e aggiornare i campi1/2/3
filtrandoli per l'ID...

Grazie dell'attenzione...

A presto
dai ai nomi la seguente forma:
id_1
campo1_1
campo2_1
campo3_1

id_2
campo1_2
campo2_2
campo3_2

etc...
<%
'========== USO UNA COMBINAZIONE STRANA DI CARATTERI AL FINE DI SPLITTARLI DOPO
For i = 1 To Request.Form.Count
   if mid(request.form.key(i),1,3) = "id_" then
     id = id &"£-£"& request.form.item(i)
   end if  
   if mid(request.form.key(i),1,3) = "campo1_" then
     campo1 = campo1 &"£-£"& request.form.item(i)
   end if  
   if mid(request.form.key(i),1,3) = "campo2_" then
     campo2 = campo2 &"£-£"& request.form.item(i)
   end if 
   if mid(request.form.key(i),1,3) = "campo3_" then
     campo3 = campo3 &"£-£"& request.form.item(i)
   end if         
Next  

id = split(id,"£-£") 
campo1 = split(campo1,"£-£")
campo2 = split(campo2,"£-£")
campo3 = split(campo3,"£-£") 

'======== CICLO PER OTTENERE TANTE QUERY DI AGGIORNAMENTO PER QUANTI SONO GLI ID
For x = 1 to ubound(id)
 sql = " update table set id = '"&id(x)&"',campo1 = '"&campo1(x)&"',campo2 = '"&campo2(x)&"',campo3 = '"&campo3(x)&"'
 set rs = conn.execute(sql)'================> qui dipende dalla tua connessione al DB
Next
%>

Provalo, l'ho scritto in poco tempo e di getto quindi non so se funziona, ma la procedura dvrebbe essere questa.
P.S. è molto dispendiosa tale procedura in termini di energie richieste al server visto che fa diversi cicli
e a livello di sicurezza non è molto raccomandabile , ma "a mali estremi, estremi rimedi"
17 messaggi dal 29 novembre 2001
Innanzi tutto grazie dell'aiuto Jr.

allora, i nome dei campi nn li posso modificare.. perchè la form è costituita da una tabella riempita da recordset... Quindi l'ID è il Nome della CheckBox Campo1 di una combobox campo2 da una textbox e campo3 da altra Combobox...
devo quindi poter filtrare solo le righe con il check selezionato ed ignorare gli altri.. visto ke il Check ha come Valore l'ID del record, prelevandolo mi costruisco la Stringa SQL:

update Tabella Set Campo1= valore(Campo1).... Where ID = valore(ID)

Nn è semplicissimo spiegarlo...

Grazie dell'aiuto e a presto.
17 messaggi dal 29 novembre 2001
Ecco un pò di HTML, tra l'altro pensavo di abbandonare l'array da form e fare tutto cn i cookies... secondo me sono meglio gestibili in questo caso.. Forse:

        <form action="Add_Record2.asp" method="post" target="_self">
        <table border="1" width="100%" style="font-family: Arial, Helvetica, sans-serif; font-size: 11px;">
          <thead>
              <tr style="background-color: #000080; color: #FFFFFF; font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold;" valign="middle">
              <td align="center" class="style21">Seleziona</td>
              <td align="center" class="style21">
              Località / Zona</td>
              <td align="center" class="style23">
              Seq.</td>
              <td align="center" class="style19">
              Via Partenza</td>
              <td align="center" class="style12">
              Ora</td>
              <td align="center" class="style28">
              Cliente</td>
              <td align="center" class="style11">
              Q.tà Forn.</td>
              <td align="center" class="style11">
              Importanza</td>
              <td align="center" class="style15">
              Gruppo</td>
              <td colspan="2" align="center" class="style11">
              Addetto</td>
              <td align="center" class="style30">
              Stato</td>
              <td align="center" class="style11">
              Note</td>
           </tr>
          </thead>
         <%
         Rs.MoveFirst
         
        do while not rs.EOF 

        %>
            <tr style="background-color: <%=Colore%>; font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #000000">
            <td align="center" class="style24">
            <input type="checkbox" name="ID" value="<%=rs(22)%>" /></td>
  <td align="left" class="style22"><a href="Image_View.asp?Loc=<%=RS(1)%>&Via=<%=RS(4)%>&Prov=<%=RS(11)%>&Tipo=<%=RS(12)%>" target="_blank"><%=RS(2)%></a></td>
              <td align="center" class="style24"><%=rs(3)%></td>
              <td align="left" class="style20"><a href="Lista_Vie.asp?Loc=<%=RS(1)%>&Int=<%=rs(2)%>" target="_blank"><%=rs(4)%></a></td>
              <td align="center" class="style9"><%=rs(5)%></td>
              <td align="left" class="style29"><%=Cliente%></td>
              <td align="center" class="style13"><%=RS(7)%></td>
                
                    <td align="left" class="style13" 
                        style="font-family: 'Arial black'; font-size: 14px; font-weight: normal">
                        <%=RS(17)%></td>
                      <td align="left" class="style16">
                        <%=RS(16)%></td>
                    
      <%Stringa2 = "Select per combo Campo1"
                      
                      Rs2.Open Stringa2,dbs,3,3%>
                      <td align="left" class="style13"><%'=Stringa2 & "<br>" & Stringa%>
                      <select name="Campo1" style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold">
                            <option><%=RS(15)%></option>
                            <option></option>
                            <%if rs2.EOF = False then 
                                rs2.MoveFirst
                                
                                Do while not rs2.EOF                        
                                %>
                                <option><%=rs2(0)%></option>
                                <%rs2.MoveNext
                                loop 
                            end if
                            
                            rs2.Close%>
                            </select> 
                    </td>
                    <td width="50">
                 <input type="text" width="80" name="Campo2" value="<%=rs(21)%>" />                    
                    </td>
              <td align="left">
              <select id="Select2" name="Campo3" style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold">
                        <option selected="selected"><%=RS(8)%></option>
                        <option></option>
                        <option>INIZIATA</option>
                        <option>COMPLETA</option>
                        <option>PARZIALE</option>
                        <option>ANNULLATA</option>
                   </select></td>
                    <td align="center" class="style13"><%=RS(10)%></td>
          <%else%>
                    <td align="center" class="style13"><%=RS(15)%></td>
                    <td align="center" class="style13"><%=RS(21)%></td>
                    <td align="center" class="style13"><%=RS(8)%></td>
                    <td align="center" class="style13"><%=RS(10)%></td>
        <%End if %>
          </tr>
      <%rs.MoveNext
      loop
    
    else
        %><p align="center" style="font-family: 'Arial Black'; font-size: 22px; color: #FF0000;">
        NESSUN RECORD TROVATO</p>
        <%
          
      end if %>
        </table>
      </form>




Spero sia chiaro il codice..

Grazie e a presto
premetto che il codice non l'ho letto con attenzione, ma ho dato un'occhiata solo alla parte che mi interessava.
quello che ti ho detto nel posto precendente lo puoi fare tranquillamente inserendo un semplice contatore.
Ti metto in rosso la modifica al tuo codice
        <form action="Add_Record2.asp" method="post" target="_self">
        <table border="1" width="100%" style="font-family: Arial, Helvetica, sans-serif; font-size: 11px;">
          <thead>
              <tr style="background-color: #000080; color: #FFFFFF; font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold;" valign="middle">
              <td align="center" class="style21">Seleziona</td>
              <td align="center" class="style21">
              Località / Zona</td>
              <td align="center" class="style23">
              Seq.</td>
              <td align="center" class="style19">
              Via Partenza</td>
              <td align="center" class="style12">
              Ora</td>
              <td align="center" class="style28">
              Cliente</td>
              <td align="center" class="style11">
              Q.tà Forn.</td>
              <td align="center" class="style11">
              Importanza</td>
              <td align="center" class="style15">
              Gruppo</td>
              <td colspan="2" align="center" class="style11">
              Addetto</td>
              <td align="center" class="style30">
              Stato</td>
              <td align="center" class="style11">
              Note</td>
           </tr>
          </thead>
         <%
         Rs.MoveFirst
         <span style="color:red">contatore = 0</span>
        do while not rs.EOF 
         <span style="color:red">contatore = contatore + 1</span>
        %>
            <tr style="background-color: <%=Colore%>; font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #000000">
            <td align="center" class="style24">
            <input type="checkbox" name="<span style="color:red">ID_<%=contatore%></span> " value="<%=rs(22)%>" /></td>
  <td align="left" class="style22"><a href="Image_View.asp?Loc=<%=RS(1)%>&Via=<%=RS(4)%>&Prov=<%=RS(11)%>&Tipo=<%=RS(12)%>" target="_blank"><%=RS(2)%></a></td>
              <td align="center" class="style24"><%=rs(3)%></td>
              <td align="left" class="style20"><a href="Lista_Vie.asp?Loc=<%=RS(1)%>&Int=<%=rs(2)%>" target="_blank"><%=rs(4)%></a></td>
              <td align="center" class="style9"><%=rs(5)%></td>
              <td align="left" class="style29"><%=Cliente%></td>
              <td align="center" class="style13"><%=RS(7)%></td>
                
                    <td align="left" class="style13" 
                        style="font-family: 'Arial black'; font-size: 14px; font-weight: normal">
                        <%=RS(17)%></td>
                      <td align="left" class="style16">
                        <%=RS(16)%></td>
                    
      <%Stringa2 = "Select per combo Campo1"
                      
                      Rs2.Open Stringa2,dbs,3,3%>
                      <td align="left" class="style13"><%'=Stringa2 & "<br>" & Stringa%>
                      <select name="<span style="color:red">Campo1_<%=contatore%></span>" style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold">
                            <option><%=RS(15)%></option>
                            <option></option>
                            <%if rs2.EOF = False then 
                                rs2.MoveFirst
                                
                                Do while not rs2.EOF                        
                                %>
                                <option><%=rs2(0)%></option>
                                <%rs2.MoveNext
                                loop 
                            end if
                            
                            rs2.Close%>
                            </select> 
                    </td>
                    <td width="50">
                 <input type="text" width="80" name="<span style="color:red">Campo2_<%=contatore%></span>" value="<%=rs(21)%>" />                    
                    </td>
              <td align="left">
              <select id="Select2" name="<span style="color:red">Campo3_<%=contatore%></span>" style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold">
                        <option selected="selected"><%=RS(8)%></option>
                        <option></option>
                        <option>INIZIATA</option>
                        <option>COMPLETA</option>
                        <option>PARZIALE</option>
                        <option>ANNULLATA</option>
                   </select></td>
                    <td align="center" class="style13"><%=RS(10)%></td>
          <%else%>
                    <td align="center" class="style13"><%=RS(15)%></td>
                    <td align="center" class="style13"><%=RS(21)%></td>
                    <td align="center" class="style13"><%=RS(8)%></td>
                    <td align="center" class="style13"><%=RS(10)%></td>
        <%End if %>
          </tr>
      <%rs.MoveNext
      loop
    
    else
        %><p align="center" style="font-family: 'Arial Black'; font-size: 22px; color: #FF0000;">
        NESSUN RECORD TROVATO</p>
        <%
          
      end if %>
        </table>
      </form>

Modificato da juniorxxx il 11 agosto 2011 09.27 -
17 messaggi dal 29 novembre 2001
Potrebbe Fungere.. ora mi rilancio e ti dico.. :D

Grazie! A presto
17 messaggi dal 29 novembre 2001
Ciao, ecco come l'ho risolta.. molto semplicemente, grazie al tuo aiuto.. Ovvio:

....
For i = 1 To Request.Form.Count
  Response.Write "Count ID: " & request.form.key(i) & " = " & request.form.item(i) & "<br>" 
  'Response.Write("Count ID: " & ubound(id) & "<br>"
  
  if ucase(mid(request.form.key(i),1,3)) = "ID_" then
    Sql = "Update Tabella Set Campo1='" & request.form.item(i+1)
    Sql = Sql & "',Campo2='" & request.form.item(i+2) & "',Campo3='"
    Sql = Sql & request.form.item(i+3) & "' where ID=" & request.form.item(i)
        
        'STAMPO A VIDEO LA STRINGA SQL
  Response.write "<br>Sql: " & Sql
        
        'ESEGUO LA STRINGA SQL
        'Conn.execute Sql

  end if

Next  

...


Così, pare che Funga... ho lasciato da parte tutto il resto del codice e dei cicli con lo split perchè a me basta catturare Dal FORM il Valore (Request.form.item(i))... e, nominando i vari valori con il contatore, è fattibilissimo...

Grazie ancora...
Modificato da cmaxym il 12 agosto 2011 09.43 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.