Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684

    due array, doppio valore

    Passo da una pagina catalogo, una variabile session contenete dei valori che corrispondono agli ID degli articoli.

    Creo la connessione e visualizzo i record all'interno di un form.

    Ogni record ha un checkbox per poter essere eliminato. Se per esmpio ho 2 articoli, e clicco su uno tutto ok, mi visualizza l'altro e se clicco sul restante appare la scritta carrello vuoto con la session a vuota.

    Il problema mi sorge quando clicco su piu' checkbox contemporaneamente, mi aggiunge quei valori. Sicuramente e' da rivedere il ciclo dell'array "ELIMINA".

    potete darmi una mano? ecco il codice:
    codice:
    <%
    IF request.form("codici") = "" THEN
    codici = session("IDFILM")
    ELSE
    IF request.form("elimina") <> "" THEN
    	elimina = split(request.form("elimina"),",")
    	codici = split(request.form("codici"),",")
    	for i = 0 TO UBOUND(elimina)
    		for x = 0 TO UBOUND(codici)
    				IF elimina(i) <> codici(x) THEN
    					IF idfilm = "" THEN
    					idfilm = codici(x)
    					ELSE
    					idfilm = idfilm + "," + codici(x)
    					END IF
    					END IF
    		NEXT
    	NEXT
    	codici = idfilm
    	session("IDFILM") = idfilm
    END IF		
    END IF
    
    IF codici <> "" THEN
    response.write "Contenuto della variabile codici: " & codici & "
    "
    response.write "Contenuto della session IDFILM: " & session("IDFILM") & "
    "
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    ecco il form, scusate:

    codice:
    <form method="post">
    <%
    do until rsfilm.eof
    %>
    <input type="checkbox" name="elimina" value="<%response.write rsfilm("idfilm")%>">
    <%
    response.write rsfilm("idfilm") & " "
    response.write rsfilm("FILM") & " "
    response.write "es. quantità 2: " & rsfilm("PREZZO")*2 & "
    "%>
    <%   
    rsfilm.MoveNext
    loop
    Rsfilm.Close
    set film=nothing
    filmConn.Close
    Set filmConn=nothing
    %>
    <input type="hidden" name="codici" value="<%response.write codici%>">
    <input type="submit" name="Submit" value="Aggiorna">
    </form>
    
    <%
    ELSE
    session("IDFILM") = ""
    response.write "il carrello è vuoto!"
    END IF
    %>

  3. #3
    codice:
    <input type="hidden" name="codici" value="<%response.write codici%>">
    ma a che ti serve? il codice del film da eliminare te lo prendi dalla checkbox, questo non serve a nulla...almeno credo

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    Ma la checkbox contiene solo i campi da eliminare.

    Aspetta... aspetta...

    Se io faccio il refresh della pagina e non passo la variabile codici tramite il campo nascosto non posso sottrarre da questa i valori contenuti nella variabile eilmina...

    il campo hidden codici lo uso per passare la colezzione al refresh di pagina...

    spero di essere stato chairo!!!

  5. #5
    scusa avevo capito per ciclo dell'elimina il ciclo che cancella fisicamente i file



    scusa cmq non ho capito...esempio pratico?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    spiego subito...

    pagina: CATALOGO.asp
    pagina: carrello.asp

    apro una connessione e visualizzo tutti i record.
    Ogni ciclo possiede un link alla stessa pagina che passa una variabile alla session:
    <a href ="catalogo.asp?articolo=<%= rsfilm("idfilm")"%>">

    Ok in questa pagina tramite, delle req expression controllo se quell'articolo e' presente nella session, morale della favola non posso avere doppioni.

    Bene, ora voglio vedere quello che ho ordinato. Vado nella pagina catalogo.asp e visualizzo il contenuto della session:
    codice:
    <%
    IF request.form("codici") = "" THEN
    codici = session("IDFILM")
    ELSE
    codici = request.form("codici")
    END IF
    
    IF request.form("elimina") <> "" THEN
    	elimina = split(request.form("elimina"),",")
    	
    	for i = 0 TO UBOUND(elimina)
    		
    		IF idfilm <> "" THEN
    		codici = split(idfilm,",")
    		ELSE
    		codici = split(request.form("codici"),",")
    		END IF 
    		
    		for x = 0 TO UBOUND(codici)
    				
    				IF elimina(i) <> codici(x) THEN
    					
    					IF idfilm = "" THEN
    					idfilm = codici(x)
    					ELSE
    					idfilm = idfilm + "," + codici(x)
    					END IF
    				
    				END IF
    		NEXT
    	
    	NEXT
    	
    	codici = idfilm
    	session("IDFILM") = idfilm
    
    END IF
    
    IF codici <> "" THEN
    response.write "Contenuto della variabile elimina: " & request.form("elimina") & "
    "
    response.write "Contenuto della variabile codici: " & codici & "
    "
    response.write "Contenuto della session IDFILM: " & session("IDFILM") & "
    "
    
    'Connessione al database con SQL per visualizzare i dati presenti nella variabile codici
    set filmconn = server.createobject ("ADODB.Connection")
    filmconn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mapPath("database\archivio.mdb")
    'sql = "SELECT * FROM film ORDER BY IDFILM"
    SQL = "SELECT * FROM film WHERE idfilm IN ("& codici & ")"
    set rsfilm = filmconn.execute(sql)
    %>
    questo invece e' il codice del form situato nella stessa pagina dopo:

    codice:
    <form method="post">
    <%
    do until rsfilm.eof
    %>
    <input type="checkbox" name="elimina" value="<%response.write rsfilm("idfilm")%>">
    <%
    response.write rsfilm("idfilm") & " "
    response.write rsfilm("FILM") & " "
    response.write "es. quantità 2: " & rsfilm("PREZZO")*2 & "
    "%>
    <%   
    rsfilm.MoveNext
    loop
    Rsfilm.Close
    set film=nothing
    filmConn.Close
    Set filmConn=nothing
    %>
    <input type="hidden" name="codici" value="<%response.write codici%>">
    <input type="submit" name="Submit" value="Aggiorna">
    </form>
    
    <%
    ELSE
    session("IDFILM") = ""
    response.write "il carrello è vuoto!"
    END IF
    %>
    il problema non sussiste quando clicco, su aggiorna senza toccare i checkbox, i record restano identici. Se seleziono solo un checkbox OK.

    Ma se provo ad eliminarne piu' di uno arriva il problema.
    Esempio ho 3 articoli:
    1
    2
    3

    selezioni, elimina checkbox, 2 e 3

    e mi stampa video:
    codici 1,3,1,3
    SESSION("IDFILM") 1,3,1,3

  7. #7
    allora,al request.form vuoi che in codici rimangano solo i codici non selezionati giusto?

    quindi
    codice:
    idfilm=""
    
    elimina="," & request.form("elimina") & ","
    codici=split(request.form("codici"),",")
    
    for each codice in codici
    
    if instr(elimina,"," & codice & ",")=0 then 
    idfilm=idfilm & "," & codice
    end if
    
    next
    
    response.write idfilm

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    Infatti, ora stavo vedendo di ciclare e poi con l'instr raffrontare l'esistenza del valore.

    Grazie, mi hai anticipato, non so di quante ore!!!
    il codice da te preparato lo devo sostituire all condizione
    IF request.form("elimina") <> "" THEN

    giusto?

  9. #9
    codice:
    if request.form("elimina")<>"" then 'c'è qualcosa da eliminare
    
    ....mio codice....
    
    codici=idfilm
    session("idfilm")=idfilm
    
    end if

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    si si intendevo dire all'interno della condizione IF... then... al posto del codice inserito da me...


    ok lo provo e ti faccio sapere.
    Grazie per l'interessamento.

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.