Newsgroup: it.comp.lang.javascript
Titolo: nome di select in forma di array

Salve a tutti!
Ho uno script JS che richiama la option di una select, in un modo simile a
questo:
document.Register.user_avatar.options[1].value
Ora, il mio problema e che la mia select non si chiama user_avatar, ma
"image[basename]" perché è un array.
Quindi mi verrebbe fuori:
document.Register.image[basename].options[1].value
Come faccio a far capire al Javascript che le parentesi quadre fanno parte
del nome della select e non le deve interpretare?
Ciao, Andrea.

 del nome della select e non le deve interpretare?
document.Register.elements["image[basename]"].options[1].value;
volendo, anche:
document.Register["image[basename]"].options[1].value;
-- 
C'ya,
ZER0
  :. job profile - coder.gfxer.webDesigner
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 wrote in message
news:bc4ap0$p2g$1...@newsreader.mailgate.org...


 document.Register.elements["image[basename]"].options[1].value;
mi sembra ci siano delle virgolette in più:
document.Register.elements[image[basename]].options[1].value;
Gaetano

 document.Register.elements[image[basename]].options[1].value;
Ho dedotto che si trattasse di un array lato server, dalla frase:
"Come faccio a far capire al Javascript che le parentesi quadre fanno parte
del nome della select e non le deve interpretare?"
Per me "le parentesi quadre fanno parte del nome della select" significa che la 
select ha l'attributo name="image[basename]".
Anche se in effetti non e' certo chiarissimo.


 document.Register["image[basename]"].options[1].value;
Grazie, funziona!!!
Ora ho un altro problemino, le immagini che carico per l'anteprima non
hanno tutte la stessa dimensione.
Non vorrei mettere una dimensione fissa per tutte perché me le
distorcerebbe, ma vorrei ridimensionarle tramite il browser, cioè
modificando, tramite javascript, gli attributi height e width in maniera
opportuna.
Le dimensioni massi accettate sono width=300 e height=300
L'algoritmo dovrebbe essere questo:
1) Prendi il lato più lungo dell'immagine (confronta height e width)
2) se supera 300, riportalo a 300
3) ridimensiona l'altro lato in proporzione.
La proporzione dovrebbe essere questa:
(300/"lato lungo") * "lato corto"
Io ho abozzato questo, ma probabilmente ci sono errori di sintassi:
<SCRIPT type="text/javascript">
<!--
if (!document.images) return
imgWidth  = document.images.img.width
imgHeight = document.images.img.height
if ((imgWidth > 300) && (imgWidth > imgHeight)) {
  document.images.img.width  = 300
  document.images.img.height = (300 / imgWidth) * imgHeight
} else {
  if (imgHeight > 300) && (imgHeight > imgWidth) {
    document.images.img.height = 300
    document.images.img.width  = (300 / imgHeight) * imgWidth
  }
}
//-->
</SCRIPT>
Chi mi aiuta a finire lo script che io sono impedito in JS? ;)
Ciao, Andrea.

 </SCRIPT>
L'idea e' buona pero' non e' crossbrowser! Funziona a partire da:
IE 5+ NN6+ OP7+ MZ1+
Quindi prima di proseguire valuta se e' sufficiente, altrimenti bisogna
cambiare approccio, server-side verrebbe ancora meglio! Infatti si
eviterebbe l'eventuale ridimensionamento all'onLoad e soprattutto
funzionerebbe sempre!

 funzionerebbe sempre!
Si ma server side non puoi gestire le immagini che cambiano dalla select,
che era il mio prima problema.
In pratica vorrei che quando cambio immagine dalla select, me la carichi
(fatto) e me la ridimensioni (da fare).
Chi mi aiuta a finire quello script?
Sono disposto a fare dei porting cross-browser se mi aiutate.
Ciao, Andrea.

 e me la ridimensioni (da fare).
vediamo...