Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    359

    Recupero valore impossibile con ciclo while

    Salve a tutti, oggi ho una nuova questione.
    Ebbene il seguente codice mi dovrebbe recuperare il valore che immetto in Sconto ma invece a causa del ciclo while non mi recupera un bel niente, come posso fare?
    codice:
    if RsDDT1("NPreventivo")=0 then
    while not RsDDT1.eof  
    Set Rs5 = Server.CreateObject("ADODB.Recordset")
    Rs5.ActiveConnection = strConn
    Rs5.Source = "SELECT * FROM T_DDT"&session("StagioneAttuale")&" where NDDT = "&request.QueryString("Dtt")
    Rs5.CursorType = 0
    Rs5.CursorLocation = 3
    Rs5.LockType = 3
    Rs5.Open()
    Rs5_numRows = 0
    
    
    Set RsArticolo = Server.CreateObject("ADODB.Recordset")
    RsArticolo.ActiveConnection = strConn
    RsArticolo.Source = "SELECT * FROM T_Prodotti"&session("StagioneAttuale")&" where Codice = '" & Rs5("Articolo") & "'"
    RsArticolo.CursorType = 0
    RsArticolo.CursorLocation = 2
    RsArticolo.LockType = 1
    RsArticolo.Open()
    RsArticolo_numRows = 0
    %>
    <%while not Rs5.eof%>
    <tr>
    <td><input type="text" name="Sconto" id="Sconto" class="casellaNumero" value="<%=request.QueryString("Sco")%>" onblur="javascript:window.location.href='fatture.asp?IDPrivato=P&Cli=<%=request.QueryString("Cli")%>&Dtt=<%=request.QueryString("Dtt")%>&Sco='+escape(document.form1.Sconto.value)"></td>
    <%
    Importo = round(Rs5("Prezzo")*Rs5("Quantita"),2)
    ScontoPerc = request.QueryString("Sco")
    Sconto = round(Importo*(ScontoPerc/100),2)
    ImpScontato = Importo-Sconto
    %>
    </tr>
    <%
    RsDDT1.MoveNext()
    Rs5.movenext
    wend
    wend
    end if%>
    Chi Crede in Me non Perirà MAI

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    359
    Nessuno che abbia un'idea o uno spunto su cui lavorare?
    Chi Crede in Me non Perirà MAI

  3. #3
    devi essere più chiaro, quello stralcio di codice dice poco e niente

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    359
    la riga incriminata è questa:
    codice:
    <td><input type="text" name="Sconto" id="Sconto"class="casellaNumero" value="<%=request.QueryString("Sco")%>" onblur="javascript:window.location.href='fatture.asp?IDPrivato=P&Cli=<%=request.QueryString("Cli")%>&Dtt=<%=request.QueryString("Dtt")%>&Sco='+escape(document.form1.Sconto.value)"></td>
    
    Se questa riga non la racchiudo in un ciclo funziona tutto e il valore viene restituito alla pagina, mentre se inserisco la stessa in un ciclo come ti ho fatto vedere nell'esempio precedente il valore passato è nullo
    Spero di essere stato chiaro, ma non è tanto facile ma spiegare
    Chi Crede in Me non Perirà MAI

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Se lo esegui in un ciclo ci saranno sicuramente millemila campi del form con name=Sconto e quindi l'istruzione
    codice:
    escape(document.form1.Sconto.value)
    avra' qualche difficolta' a capire a quale tu ti riferisci
    Prova modificando l'istruzione cosi':
    codice:
    escape(this.value)
    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

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    359
    Ok grazie, ho modificato l'istruzione come da te segnalato e infatti adesso il valore viene passato ma il problema adesso è che il valore che io ho immesso nella prima riga viene replicato anche per tutte le righe sottostanti ed invece io vorrei che per ogni riga si potesse mettere un valore diverso, non so se sono stato abbastanza chiaro.
    Saluti
    Chi Crede in Me non Perirà MAI

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    359
    Alloraultimo aggiornamento, sono riuscito nel mio intento iniziale, e cioè a far inserire all'utente valori diverse per le singole righe, adesso il problema che mi si presenta è il seguente: come posso fare ad incrementare la stringa che passo alla pagina di volta in volta che implemento un valore nelle singole righe?

    codice:
    <%b=1
    while not Rs5.eof%>
    <tr>
    <td><input type="text" name="Sconto<%=b%>" id="Sconto<%=b%>" class="casellaNumero" value="<%=request.QueryString("Sco"&b)%>" onblur="javascript:window.location.href='fatture.asp?IDPrivato=P&Cli=<%=request.QueryString("Cli")%>&Dtt=<%=request.QueryString("Dtt")%>&Sco<%=b%>='+escape(this.value)">
    </td>
    </tr>
    <%b=b+1
    Rs5.movenext
    wend%>
    Come vedete nell'esempio avendo un ciclo io posso avere per assurdo N righe e io vorrei che ogni volta che viene inserito un valore nella riga N, all'azione onblur corrispondesse una stringa con tutti i valori fino a quel momento inseriti, quindi se ho 3 righe e inserisco il valore solo per la prima riga il problema non sussiste, ma se inserisco anche il vaore per la 2 e 3 riga allora arriva il problema perchè così come l'ho impostata adesso il codice recupera solamente il valore immesso in quel momento e non si porta dietro invece i valori immessi nelle righe precedenti.

    Grazie
    Chi Crede in Me non Perirà MAI

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    359
    EVVIVA, RISOLTO!!!!!!!
    La soluzione è se a qualcuno interessa.
    codice:
    <%b=1
    pippo=""
    while not Rs5.eof
    %>
    <tr>
    <%if pippo="" then%>
    <td><input type="text" name="Sconto<%=b%>" id="Sconto<%=b%>" class="casellaNumero" value="<%=request.QueryString("Sco"&b)%>" onblur="javascript:window.location.href='fatture.asp?IDPrivato=P&Cli=<%=request.QueryString("Cli")%>&Dtt=<%=request.QueryString("Dtt")%>&Sco<%=b%>='+escape(this.value)"></td>
    <%else%>
    <td><input type="text" name="Sconto<%=b%>" id="Sconto<%=b%>" class="casellaNumero" value="<%=request.QueryString("Sco"&b)%>" onblur="javascript:window.location.href='fatture.asp?IDPrivato=P&Cli=<%=request.QueryString("Cli")%>&Dtt=<%=request.QueryString("Dtt")%><%=pippo%>&Sco<%=b%>='+escape(this.value)"></td>
    <%end if%>
    </tr>
    <%b=b+1
    pippo = pippo&"&"&"Sco"&(b-1)&"="&request.QueryString("Sco"&(b-1)) 
    Rs5.movenext
    wend
    Chi Crede in Me non Perirà MAI

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