Newsgroup: it.comp.www.asp
Titolo: cambiare il separatore degli array di <input...>

ammettiamo che in una form ci siano diversi input con lo stesso nome.
nel file specificato nella action i valori saranno riportati in un
array che ha il nome degli input.
ad es.:
<input type=hidden name=GIORNO value=Lunedì>
<input type=hidden name=GIORNO value=Martedì>
<input type=hidden name=GIORNO value=Mercoledì>
nel file chiamato request("GIORNO") conterrà (Lunedì, Martedì,
Mercoledì).  è agevole mettere questi valori in un array con la
funzione split usando la virgola come separatore:
dim arrGiorni
arrGiorni = split(request("Giorno"), ",")
ma se uno dei parametri contiene esso stesso la virgola che succede?
ciè se ho anche:
<input type=hidden name=GIORNO value="Giovedì, Venerdì e Sabato">
va a finire che ho due elementi: "Giovedì" e "Venerdì e Sabato",
mentre io ne vorrei uno solo: "Giovedì, Venerdì e Sabato".
è possibile cambiare il separatore di default degli array?  ci sono
altri escamotaggi?
per i valori recuperati dinamicamente mi viene in mente il replace.
ad esempio, ammettiamo che nel campo Giorno del recordset rst ci sia
scritto "Giovedì" e "Venerdì, Sabato e Domenica", potrei scrivere:
do until rst.eof
	response.write "<input type=hidden name=Giorno value = " & _
	                       replace(rst(Giorno"), ",", "§§§")
	rst.movenext
loop
nello script chiamato otterrei "Giovedì, Venerdì§§§ Sabato e
Domenica", che va ancora bene.
ma se ho a che fare con un testo immesso dall'utente che mi utilizza
le virgole?
--
non studio non lavoro non guardo la tv
non vado al cinema non faccio sport

è possibile cambiare il separatore di default degli array? 
La sintassi completa di Split e':
Split(espressione[, delimitatore[, conteggio[, confronto]]])
Ti basta specificare un diverso 'delimitatore'.
Davide

> Ti basta specificare un diverso 'delimitatore'.
Ma il delimitatore che usa il browser quando manda i parametri usa quello e
non e' modificabile...



Devo supporre che il delimitatore che usa il browser sia quello
impostato nelle Impostazioni Internazionali della macchina
(o quello che e' per Linux/Unix/Mac/Diosacosa). Ovviamente
dovra' gestirselo l'utente in questo caso...
Davide


Moderatore di it.comp.www.asp
Sito di supporto: 
http://www.aspitalia.com/newsgroup/
Tutto su WindowsNT? Su 
http://www.aspitalia.com
Libri ITA o ENG con sconti del 15% su 
http://store.aspitalia.com/
Tech Leader per 
http://www.e-conomy.it

 dovra' gestirselo l'utente in questo caso...
Dunque improponibile per internet, forse su una intranet.
Saluti.
Stefano.

>nel suo caso gli basta non mettere nei valori del campo stesso la virgola.
purtroppo non posso impedire agli utenti di farlo, e tra l'altro devo
anche prepararmi all'immissione di valori decimali e con separatori di
migliaia secondo regole europee e anglosassoni...
dovrņ proprio rinunciare agli array di <input>?  spero di no...

>Ti basta specificare un diverso 'delimitatore'.
sě, ma quello che mi domandavo era se fosse possibile cambiare il
delimitatore che di default separa gli elementi dell'array, prima di
darlo in pasto allo split...

 darlo in pasto allo split...
risposta: NO!
come già detto, è un qualcosa che è dentro il protoccolo, e quindi non hai
modo di decidere TU quale debba essere il separatore.


sě, ma quello che mi domandavo era se fosse possibile cambiare il


Spero sia quanto cercavi!!
splendido.  grazie.
ho provato a trattare l'insieme di request multiplo come un "vero"
array, ad esempio chiedendo ubound(request.form("Test")) ma non
funziona.  col count ovviamente funziona benissimo.
mi ero proprio fissato con lo split, era troppo comodo...
l'unica cosa cui stare attenti adesso è che l'indice parte da 1 e non
da 0, ma insomma, è l'ultimo dei problemi.
grazie ancora,
L.

Request.Form("nome_input") come ARRAY??
<ZAP>
Non male come idea, per la serie "le cose piu' semplici sono
quelle che non ti ricordi mai".
Brava.
Davide

 Davide