Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    collection e form - muoversi da un campo all'altro

    ciao a tutti
    devo popolare una collection con i dati contenuti in un form.
    ho creato la collection in modo che contenga coppie di dati formati da Nome campo (chiave) e valore.

    faccio un ciclo for, però quando poi vado a testarlo mi dice "chiave già associata ad un elemento dell'insieme", come se stessi cercando di inserire sempre lo stesso valore, e non mi spostassi su un nuovo campo del form.
    Dove sbaglio? posto il codice:
    Codice PHP:
    dim strForm
    Set strForm 
    CreateObject("Scripting.Dictionary")

    For 
    1 To Request.Form.Count()
            
    fldName  request.Form(Key)(i)
            
    fldValue =  request.Form.Item(i)
            
    strForm.Add fldName,fldValue

    Next 

  2. #2
    Key che roba è?
    Sarebbe più semplice un ciclo for each:
    codice:
    dim strForm
    Set strForm = CreateObject("Scripting.Dictionary")
    
    For Each element In Request.Form
            fldName  = element
            fldValue =  request.Form(element)
            strForm.Add fldName,fldValue
    
    Next 'element
    Poi considera che Add non consente duplicazioni di chiavi, mentre Item si.

    errata corrige: Nel senso che Item sovrascrive il valore a parità di chiave

    xxx

  3. #3
    Originariamente inviato da Alethesnake
    Key che roba è?
    Sarebbe più semplice un ciclo for each:
    codice:
    dim strForm
    Set strForm = CreateObject("Scripting.Dictionary")
    
    For Each element In Request.Form
            fldName  = element
            fldValue =  request.Form(element)
            strForm.Add fldName,fldValue
    
    Next 'element
    Poi considera che Add non consente duplicazioni di chiavi, mentre Item si.

    errata corrige: Nel senso che Item sovrascrive il valore a parità di chiave

    Ottimo! Appena provato e va tutto ok adesso grazie mille!!!

    Guarda, key l'avevo trovato da qualche in un tutorial su internet... cercavo di utilizzarlo nonostante avessi notato che non vi erano riferimenti a tale proprietà di Form... ma in un qualche modo volevo essere sicuro che il programma non se ne andasse a zonzo per il form a casaccio .
    A tal proposito: se io nel ciclo inserisco anche una variabile i che aumento di uno ad ogni passaggio e che la passo ad element, potrei poi accedere ordinatamente ai campi del form, dal primo all'ultimo? o dovrei già essere abbastanza tranquillo così?

    Un'ultima cosa: non ho ben capito l'utilizzo di item al posto di add per inserire i dati in una collection.

    Grazie ancora di tutto

  4. #4
    Bene
    Riguardo l'utilizzo del for-each piuttosto che dell'indice numerico per recuperare i campi del form i due metodi sono perfettamente equivalenti.
    element è il nome che ho dato io alla variabile, non è una parola chiave sia chiaro.
    Facendo quindi un:

    For Each elementodelform In Request.Form

    già prendi tutti gli elementi che vengono inviati al submit di quel form.

    Riguardo il dictionary invece, la mia era solo un'aggiunta che poteva forse tornarti utile. Ad esempio:

    codice:
    ...
    Dim chiave, valore, dizionario
    
    Set dizionario = Server...
    
    chiave = "miachiave"
    valore = "miovalore"
    una cosa del genere:
    codice:
    dizionario.Add chiave, valore
    dizionario.Add chiave, valore
    da errore sulla seconda Add, per duplicazione di chiave. Invece:

    codice:
    dizionario.Item chiave, valore
    dizionario.Item chiave, valore
    Non genera errore perché con item se un elemento non è presente viene aggiunto, altrimenti viene sovrascritto il suo valore a parità di chiave.



    xxx

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.