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

    Problema con "For i = 1 to..."

    Salve a tutti,
    spero che ci possa essere qualcuno in grado di darmi una mano a risolvere il problema dove ora sono arenato.
    Intanto un po' di storia: di ASP praticamente non ne so quasi nulla ma mi sto dilettando ad utilizzarlo, nei limiti di ciò che riesco ad imparare leggendo ovunque su internet, per il fantacalcio che facciamo tra amici.
    Dopo avere iniziato ad utilizzarlo per rose dei calciatori, campionato e classifica, adesso mi stavo cimentando nel tentativo dell'invio della formazione.
    Utilizzando il database dei calciatori riesco ad estrarre facilmente le rose di ogni giocatore.
    in pagine protette (ovviamente) inserisco dei radiobutton con "value" il codice numerico relativo al calciatore (<%=objRs("Codice")%>). Ho utilizzato questo sistema in quanto ovviamente aggiornando solo il database dei calciatori in automatico viene sempre aggiornato anche tutto il resto. I radiobutton sono 4 per ogni calciatore e corrispondono poi al valore di "titolare", "prima riserva", "seconda riserva" e "tribuna" (quest'ultima opzione "checked" di default).
    Alla fine tutto questo è solo per cercare di farvi capire quale può essere il mio livello conoscitivo dell'ASP.
    Adesso il dunque:
    inviando i dati dal form precedente volevo passarli su un database che registrasse giornata dopo giornata le varie formazioni (insomma lo storico delle formazioni della stagione) riprendendo il codice del calciatore e la posizione. Per prendere i dati ho usato:
    <%
    For i = 1 to request.form.count
    Codice = request.form.key(i)
    Posizione = request.form.item(i)

    ... cancello eventuali dati già presenti nel db...
    ... scrivo i nuovi dati...

    Next

    ... chiudo tutto
    %>
    e la cosa funziona, cioè prende i codici e li riporta nel db con nella colonna accanto la corrispettiva posizione... li riporta tutti, TRANNE IL PRIMO!
    Praticamente il primo portiere (i calciatori sono in ordine di ruolo) non viene mai riportato. Tuttavia se mi faccio mostrare la pagina con un errore (tipo "manca 1 riga x colonna y), sotto riporta tutti i dati che dovrebbero passare con il metodo POST e lì invece il codice del primo portiere c'è....
    Come si fa a fare passare anche il primo?

    P.S.: ho già provato tutte le varianti del "For (i)" mettendolo uguale a "0" oppure cambiando "1 to request.form.count" in "1 to (Request.form.count()-1)" ma sempre nulla. Con 0 al posto di 1 mi da errore e con il -1 il risultato non cambia: tutti tranne il primo.

    Scusate se sono stato lungo ma purtroppo non ho qui ora tutto il listato e ho cercato quindi di spiegare al meglio cosa volevo fare e dove non riesco a risolvere.

    Grazie

  2. #2
    prova a partire da 0

  3. #3
    che rispostone robbe2000

  4. #4
    Originariamente inviato da graograman
    che rispostone robbe2000
    ma tu guarda quanti danni può fare l'invidia.... ha dato la risposta giusta, perché lo critichi?

  5. #5
    Ciao a tutti e grazie per le risposte.
    Questa sera a casa riproverò ma come avevo già scritto nel messaggio iniziale, mettendo "0" (zero) invece di "1" mi da errore di compilazione (questa sera posterò anche la descrizione del messaggio di errore e non mi scrive quindi nulla nel db).
    tutttavia se, come anche io supponevo, la questione è legata all'"1" e voi che certo ne sapete più di me ritenete che la soluzione sia lo "0", ci studierò dietro fino a trovare -spero- la soluzione.
    Grazie ancora e a questa sera

  6. #6
    For i = 0 to request.form.count-1

  7. #7
    Originariamente inviato da optime
    ma tu guarda quanti danni può fare l'invidia.... ha dato la risposta giusta, perché lo critichi?
    Invidia naaa! ne capirà 100 volte più di me!!!
    E Chiedo scusa ma non era mia intenzione, sinceramente avevo interpretato male il messaggio!!!!

    Pardon

  8. #8
    Buonasera a tutti,
    come promesso eccomi qui.
    Ho testato come da vostri suggerimenti (For i = 0 TO Request.Form.Count-1).
    Purtroppo l'esito è stato negativo.
    Ecco il testo che mi è uscito in merito all'errore:

    "Tipo di errore:
    Oggetto Request, ASP 0105 (0x80004005)
    Il valore dell'indice di una matrice non è compreso nell'intervallo consentito."

    Ovviamente sostituendo a "0" (zero) il valore "1" tutto torna a funzionare ma non mi viene mostrata la prima riga

    Sono davvero esausto :master: .... Se avrò qualche illuminazione la posterò in modo da rendervi partecipi delle mie elucubrazioni mentali :berto:

  9. #9
    tagliamo la testa al toro, eliminiamo la i:

    codice:
    for each el in request.form
    
    response.write "elemento: " & el & " di valore " & request.form(el) & "
    "
    
    next

    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  10. #10
    Grazie ancora per la risposta.
    Provo e faccio sapere.
    Intanto durante la notte mi era venuta in mente una soluzione un po' empirica che potrebbe anche lei risolvere il problema (ovviamente l'ho pensata 3 secondi scarsi prima di addormentarmi e quindi non l'ho provata e soprattutto non so se potrebbe avere effetti collaterali).
    Ecco l'idea:
    dato che il metodo POST del form elenca tutti i valori ma una volta che si cerca di scriverli nel db salta il primo, mi sono detto: "perchè non inserire nel form un primo input con "name" un codice farlocco (trattandosi di codici che partono da 001 per il primo calciatore e finiscono con XXX per l'ultimo, il codice utile è 000), con "value" di default "tribuna" (tanto non deve essere selezionato, non mi servirà successivamente per essere mostrato dato che mi interessano invece i calciatori che dovranno giocare,....) e impostato come "hidden" (nessuno lo vede ma c'è).
    Una volta passati i dati anche lui verrà elaborato ma, essendo questo il primo dato elaborato, non verrà passato al db e quindi rimarrano poi solo quelli utili.
    Qualora dovesse funzionare, può essere una soluzione più comoda che altro, in quanto bypassa il reale problema che è quello di trovare la soluzione a livello di codice, però almeno potrebbe risolvere
    Intanto proverò la nuova proposta e poi testerò anche la mia gabola....
    A presto

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.