PDA

View Full Version : [JS+CSS] Ricavare il numero della riga selezionata


fedo
30-03-2006, 09:27
Ciao ragazzi,

da 2 giorni sto cercando di capire come si può ottenere il numero di riga che ho selezionato nella mia tabella html.

Ci sono alcuni script in JS e CSS per avere gli effetti di hover, scroll, etc..

Guardando il codice (vi allego quello completo..magari è utile a qualcuno ;) :


el[i].onclick = function()
{
if(rClick)
{
rClick.className=rClick.oldClassName;
rClick.onmouseout = function(){this.className = this.oldClassName};
}

this.className = "click";
rClick = this;
this.onmouseout = function() { return true };
} //end function()




nella funzione di gestione dell' "onlick", pensavo si potesse prendere l'intero i, ma in realtà se accio stampare quel numero, esso è sempre 20 perchè il ciclo for iniziale lo porta a 20.. (n° di righe totali).

Come posso reperire la riga dell'oggetto selezionato con il click (che l'effetto grafico rende blu scuro) e copiare tale valore in un campo hidden da passare poi con un "submit" al server?

Grazie

fedo
30-03-2006, 15:38
uhm..pochi esperti in materia..

whiles_
30-03-2006, 17:13
ho allegato la soluzione, attraverso la manipolazione del dom con setAttribute e getAttribute. Però non è compatibile con le versioni di opera precedenti alla 7.54. Se hai altri problemi posta pure. Ho anche commentato le righe immesse (solo due) con //**** , mettendo come esempio un alert in corrispondenza dell'evento onClick della riga che visualizza il numero della stessa.

fedo
30-03-2006, 17:48
ma sei un grande!

Ottima cosa! Ora devo mettere il numero di riga in una hidden text.. quando poi premo il pulsante OK (che ora non è presente) devo leggermi quel valore e mandarlo con un post alla "action" (conosci il framework Struts?) ... così posi dal codice java della action posso mettermi il valore in sessione (è questo lo scopo finale..)


spero sia facile..

Un mega grazie a whiles_ !

whiles_
30-03-2006, 18:02
ma sei un grande!

Ottima cosa! Ora devo mettere il numero di riga in una hidden text.. quando poi premo il pulsante OK (che ora non è presente) devo leggermi quel valore e mandarlo con un post alla "action" (conosci il framework Struts?) ... così posi dal codice java della action posso mettermi il valore in sessione (è questo lo scopo finale..)


spero sia facile..

Un mega grazie a whiles_ !
fai così: metti un campo hidden, al click se l'elemento viene selezionato allora aggiungi al campo hidden il numero della riga seguito dal carattere ; (o qualsiasi altro carattere), in modo che si viene a formare una cosa così: 1;6;14;4;2 invece se viene selezionato fai un replace in cui sostituisci il numero della riga più ; con una stringa vuota, in modo da eliminarlo. Così puoi mandare al server una stringa contenente i numeri delle righe che l'utente ha selezionato... semplice :) (o forse si può selezionare una sola riga?)

fedo
30-03-2006, 18:27
si può selezionare una sola riga..

ho aggiunto il campo:

<html:hidden name="myForm" property="rowSelezione" value="" />

poi ho scritto la funzione:

function writeText (myForm, id)
{
myForm.rowSelezione.value = id;
}


e quindi nella function "onlick" ho messo:

writeText(this.getAttribute("rowNumber"));

devo provare se funziona, ma secondo me esce qualche intoppo ;)

ciao

fedo
30-03-2006, 18:35
come non detto..

è sufficiente questa riga nella onclick:


document.myForm.rowSelezionata.value = this.getAttribute("rowNumber");

Credo di stare a posto :D

whiles_
30-03-2006, 19:17
bene ma... quando clicchi una riga non si dovrebbe deselezionare l'altre selezionata in precedenza?

fedo
31-03-2006, 15:17
Si,

e difatti funziona così... perchè a te non lo fa?? a me si..

whiles_
31-03-2006, 15:20
Si,

e difatti funziona così... perchè a te non lo fa?? a me si..
ah si vero non l'avevo neanche notato :fagiano: scusami :)

fedo
31-03-2006, 15:59
mi sembra carina come tabella ;) hover, scroll, header fisso, selezione delle righe..

Spero che la discussione sia utile anche ad altri ;)

personalmente grazie per la soluzione al mio problema..


ciao