Utilizzare l'evento OnLoad con i DIV

di il
3 risposte

Utilizzare l'evento OnLoad con i DIV

Ciao,
vediamo se qualcuno riesce ad aiutarmi.
perchè sono fermo e non riesco a muovermi

Sto caricando una pagina dove ci sono 45 DIV che quando ci clicco sopra cambiano colore
				
for ($i=1;$i<46;$i++)
 {
    echo "<div id=\"".$i."\" onclick=\"action(this,'". $_SESSION["utente"]."','". $_SESSION["color"]."')\"><p>".$i."</p><p></p></div>"; 				
 }
la funzione action non fa altro che prendere il nome utente e il colore definito nella sessione e cambiare il colore del DIV selezionato.
					cella.style.backgroundColor = colore;
					cella.childNodes[1].innerHTML=user;

vorrei fare che quando carico i 45 DIV si colorino in automatico in base ad una varibile che definisco io (es. $utenti [$x]['color'] = RED)

cosi facendo i DIV già selezionati da altri utenti si colorano di RED.

pensavo di utilizzare onLoad=\"action2(this,'". $$utenti [$x]['user'] ."','". $utenti [$x]['color']
ma sembra che con i DIV l'evento ONLOAD non sia presente in quanto la funzione action2 non mi viene richiamata.

Qualcuno ha qualche idea

Grazie

3 Risposte

  • Re: Utilizzare l'evento OnLoad con i DIV

    C'era un errore nel codice
    il codice aggiornato è:
    				for ($i=1;$i<46;$i++){
    				echo "<div id=\"".$i."\" 
    				onload=\"action2(this,'". $utenti[1]['nome']."','". $utenti[1]['colore']."')\",
    				onclick=\"action(this,'". $_SESSION["utente"]."','". $_SESSION["color"]."')\"><p>".$i."</p><p></p></div>"; 				
    				}
    
    la funz. js è:
    function action2(cella,user,colore){
    	alert ("ciao");
    	cella.style.backgroundColor = colore;
    	cella.childNodes[1].innerHTML=user;
    
    mi aspettavo che quando carico la pagina tutti i div diventassero colorati con il colore definito $utenti[1]['colore'] (nel mio caso rosso) e quindi di vedermi apparire 45 alert

    in realtà non è così
    la funzione action2 non mi viene mai richiamata.


    come posso fare a richiamare la funz. action2 quando carico i DIV la prima volta?

    Grazie gente...
  • Re: Utilizzare l'evento OnLoad con i DIV

    Se anche non fosse possibile usare onload con i div (e credo che non lo sia), puoi sempre usare l'onload del body richiamando una funzione che cicla su tutti i div (se sono tutti figli del body o di un div contenitore si può fare comodamente).

    Più che altro, mi chiedo perché modifichi il colore lato client al caricamento della pagina quando potresti farlo direttamente lato server con php.

    ciao
  • Re: Utilizzare l'evento OnLoad con i DIV

    Risolto facendo:
    
    
    echo "<div id=\"".$i."\"  style=\"background-color:".$utenti[$partita[$i]]['colore']."\">
             <p>".$i."</p>
             <p>".$utenti[$partita[$i]]['nome']."</p>
    </div>";
    
    Grazieee
Devi accedere o registrarti per scrivere nel forum
3 risposte