Switch to American English
Giovanni's logo
Gestione delle ricorrenze multiple di una variabile in arrivo dal browser
questo significa Versione 2
indice analitico
M
power search
blue line

Che cosa sono le ricorrenze multiple di una variabile di input

Supponiamo che un CGI si aspetti di ricevere dal browser una stringa di input di questo tipo

numart=00727&qta=1&numart=00932&qta=7&numart=01858&qta=15

Si potrebbe trattare di un ordine di tre articoli, ciascuno con una quantità diversa.
In altre parole, il CGI riceve ricorrenze multiple delle variabili di input numart e qta.

Il service program di CGIDEV2 fornisce le procedure seguenti:

  • ZhbGetVarCnt, che restituisce il numero di ricorrenze multiple di una data variabile di input
  • ZhbGetVar, che restituisce il valore di una delle ricorrenze multiple di una data variabile di input
  • ZhbGetVarUpper, che restituisce in caratteri maiuscoli il valore di una delle ricorrenze multiple di una data variabile di input
Esempio:
 * Definizione dei prototipi e della DS standard per i codici errore delle API
 /copy CGIDEV2/qrpglesrc,prototypeb
 /copy CGIDEV2/qrpglesrc,usec
 * Numero di variabili di input ricevute
DnbrVars          s             10i 0
 * Query string ricevuta
Dsavedquerystring...
D                 s          32767    varying
 * Codice di ritorno
D rc              s             10i 0 inz(0)
 * Variabili per ricevere ricorrenze multiple di "itemno" e di "qty"
D itemcount       s             10i 0
D varocc          s             10i 0
 *
D itemno          s              5a
D qty             s              3a
 *           ... etc. ...
 * Acquisisci il buffer di input spedito dal browser del client
C                   eval      nbrVars =
C                             zhbgetinput(savedquerystring:qusec)
 * Esempio di ricezione di ricorrenze multiple di variabili di input
C                   eval      itemcount = ZhbGetVarCnt('itemno')
C                   IF        itemcount > 0
C     1             do        itemcount     varocc
C                   eval      itemno = ZhbGetVar('itemno':varocc)
C                   eval      qty    = ZhbGetVar('qty':varocc)
C                   exsr      ProcessItem
C                   enddo
C                   ENDIF

Queste procedure sono in grado di trattare un numero illimitato di ricorrenze della stessa variabile di input.

Per un esempio di come reperire ricorrenze multiple di una variabile di input, si veda il programma boatsch2 che fa parte della YachtWorld demo.