Newsgroup: it.comp.lang.javascript
Titolo: cambiare sfondo di una tabella onChange....

Ciao a tutti, mi sono scritto questa semplice funzioncina per il cambio
dinamico di uno sfondo di una tabella ONCHANGE di un select...mi sa che c'è
qualche errorino perchè non mi funge...
gli date un occhio...grazie, Alen.
--------------------------------------
function ChangeTable(a)
var table = document.getElementById("Colorize")
{
 (a==1)?table.bgColor = "#33CC00";
 (a==2)?table.bgColor = "#FF9900";
 (a==3)?table.bgColor = "#FF0000"
}
-->
...
<table width="100%" height="40" border="0" cellpadding="0" cellspacing="0"
bgcolor="#0066FF" id="Colorize">
  <tr>
    <td align="center" valign="middle">
<select name="select" class="TxtAdvertiseUp"
onChange="ChangeTable(this.value);return false">
      <option selected>Operazione da effetuare
      <option value="1">Iscrizione a Mailifit
      <option value="2">Sostituzione e-mail
      <option value="3">Cancellazione da Mailfit
 </select>
</td>
  </tr>
</table>
-- -------------------------------------
TNKS
Alen
++++++++++++++++++++++++++++++
 Studiare senza riflettere è inutile.
 Riflettere senza studiare è pericoloso.
++++++++++++++++++++++++++++++

 -->
pare che tu abbia qualche problema con la sintassi Javascript in 
generale.. ti consiglio un ripasso sulla reference della netscape:
http://developer.netscape.com/docs/manuals/js/client/jsref/index.htm
Innanzitutto, la dichiarazione della variabile "table" e' collocata nel 
posto sbagliato. Subito dopo la dichiarazione del nome della funzione e 
relativi parametri, deve esserci la parentesi graffa aperta per indicare 
il corpo della funzione. Qua, inserisci le variabili locali:
function changeTable(a){
	var table = document.getElementById("Colorize");
	/* etc.. */
}
Inoltre, il codice successivo.. beh, non ha molto senso. Sembra quasi 
che tu volessi usare l'operatore ternario, ovvero:
(condizione)?(vera):(falsa);
Nel tuo caso mal si adatta, perche' la tua condizione non si limita ad 
un vero o falso. Un esempio concreto dell'uso dell'operatore ternario 
potrebbe essere:
var dom=document.getElementById?1:0;
in questo modo checkando la variabile dom sai se il browser corrente 
supporta il DOM W3C.
Tornando al tuo caso, sarebbe preferibile usare uno switch, una serie di 
if a cascata, oppure meglio ancora un array.
var palette=["#33CC00","#FF9900","#FF0000"];
function changeTable(index){
	document.getElementById("table").style.backgroundColor=palette
[index-1];
}
index-1 perche' gli array partono con un indice di 0, mentre la tua 
select parte da 1.
Inoltre e' preferibile usare le proprieta' standard dei CSS (invece di 
bgcolor).
-- 
C'ya,
ZER0
  :. job profile - coder.gfxer.webDesigner
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 generale.. ti consiglio un ripasso sulla reference della netscape:
Grazie come sempre per le tue raddrizzate...a volte faccio meno errori!
Grazie ancora.
Alen
P.S.: Per il ripasso vado subito a leggerlo....

 ++++++++++++++++++++++++++++++
Premesso che "rifletti" sulla risposta di Zer0 :-) prova anche questo, 
e' una rielaborazione del tuo:
<html>
<head>
</head>
<script type="text/javascript">
<!--
function cambia(colore)
	{
	document.getElementById('tabella').style.background=colore;
	}
//-->
</script>
<body>
<table id='tabella' border='2'>
<tr><td> prova </td></tr>
</table>
<form>
<select onchange='cambia(this.options[this.selectedIndex].value)'>
	<option value='red'>1</option>
	<option value='pink'>2</option>
	<option value='yellow'>3</option>
</select>
</form>
</body>
</html>
-- 
Ciao, Riccardo
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
Per rispondere: togli il PUNTO e metti un .

 prova anche questo, e' una rielaborazione del tuo:
[cut]
Era una cosa a cui avevo pensato anche io, ma scartato subito. Non ha 
utilita' a fini pratici, soprattutto in considerazione dello script di 
Alen :)
La select pone delle scelte, presumibilmente il valore della value 
servira' per essere checkato successivamente o salvato in un DB. Il 
cambio di colore fa da semplice feedback visivo.
Volendo, si sarebbe potuto optare per l'aggiunta di un attributo 
all'option tag.. ;)


Grazie ad entrabi per lo sviluppo della soluzione, premettendo che
questo problema del cambio colore ? risolto (anche se non funziona in
NN, ma non ? importante), vorrei sapere il perch? quando lancio la
suddetta pagina NN4 mi va in bomba e si chiude...SEMPRE.
http://194.185.54.7/Alen_Test/2.htm
Sto cercando di fare un SHOW/HIDE su di un div compatibile
multibrowser...ora mi va sia in IE che in Nescape 6, ma in NN4 mi va
regolarmente in palla...mi piacerebbe sapere il perch?? Qui le
funzione del trend non sono attivate...
Grazie a tutti 
A.