PDA

View Full Version : HTML -


manu0087
21-08-2012, 18:53
ciao a tutti,
stò lavorando sulle tabelle in html e js.
con js ho creato una tabella tipo l allegato..
sono riuscito ad associargli l evento 'onclick'.
fin qui perfetto.!.
se nel js inserisco un alert stampo a video la riga selezionata...
ora però vorrei avere questo valore nella pagina html che richiama il js che crea la tabella...
come devo fare???

questo è la parte di codice che uso per associare l evento 'onclick':

var row = document.getElementById(tableID).getElementsByTagName('tbody')[0].getElementsByTagName('tr');

row[i].onclick = function()
{
var cell = this.getElementsByTagName("td")[0];
var id = cell.innerHTML;
alert("id:" + id);

};


grazie a tutti in anticipo!!

manu0087
28-08-2012, 14:49
ciao,
in pratica quello che non riesco a fare è questo...



function addCol(tableID,data,type,value,position,offsetPos)
{
var array=StringToArray(data);
var table = document.getElementById(tableID);
var id;

for(j=array.length-1;j>=0;j--)
{

for(i=0+offsetPos;i<table.rows.length;i++)
{
var row = document.getElementById(tableID).getElementsByTagName('tbody')[0].getElementsByTagName('tr');

var cell1 = row[i].insertCell(position);
element2.type = type;
element2.value=array[j];
element2.name=i;
element2.id=array[j];
cell1.appendChild(element2);

//questo associa l evento all elemento 'input' di quella riga

var cell=row[i].getElementsByTagName('input');
cell[0].onclick = function()
{
var td=this.id;

//come faccio a ritornare questo valore nell pagina HTML che
//chiama questo JS????

//qua stampo a video il bottone cliccato e la sua riga...

alert("id2: "+this.id+' '+this.name);

};

}
}

}



una volta creato l evento 'onclick' non sò come ritornarlo nella pagina HTML che ha chiamato il JS.

grazie a tutti.!!.

wingman87
28-08-2012, 15:50
Tipo così?
document.getElementById("resultContainer").innerHtml = value;
resultContainer è l'id dell'elemento in cui vuoi scrivere il valore e value è il valore che vuoi scrivere.

manu0087
28-08-2012, 18:41
ciao,
intanto grazie per l interessamento :-)
cmq no, magari mi sono spiegato male...

questo è il js:

cell[0].onclick = function()
{
var td=this.id;

//come faccio a ritornare questo valore nell pagina HTML che
//chiama questo JS????

//qua stampo a video il bottone cliccato e la sua riga...

alert("id2: "+this.id+' '+this.name);

};



qua ora ottengo qual è la riga cliccata con alert di this.id oppure td.id...

pagina html che chiama js:

addCol('dataTable','<%=col %>','button','Download',6,1);


qui ora ho bisogno di sapere qual è il valore della riga selezionata( 'td' )


addCol('dataTable','<%=col %>','button','Download',6,1);
riga=!?!?!


grazie ancora!!

wingman87
28-08-2012, 19:48
Immaginavo non fosse quello che intendevi :D
Comunque scusa ma non ti seguo... la funzione addCol aggiunge gli handler per l'evento onclick di ogni riga, non esegue il codice dell'onclick. Quello per l'appunto verrà eseguito quando si verificherà il click.
Quindi non capisco quale valore vorresti avere al ritorno dalla chiamata addCol...

manu0087
29-08-2012, 09:24
ciao,
allora....
sono nell mia pagina HTML, e chiamo la funzione 'addcol'.
ora nel JS la funzione mi aggiunge alla tabella 'tabella' delle colonne con dei bottoni.
in più associa per oguno di questo l evento 'onclick' che determina la riga cliccata.
ora nella pagina HTML, ho bisogno di memorizzare in una variabile, quando scatta l evento, il valore della riga cliccata...

grazie ancora.!!

wingman87
29-08-2012, 10:57
Ok, quello che intendevo è che il flusso di esecuzione non è:
addCol -> onclick -> ritornoDaAddCol
perché l'onclick verrà eseguito quando l'utente cliccherà una riga. Quindi non puoi aspettarti di avere la riga cliccata al ritorno da addCol. Dovrai invece gestire a parte l'evento (dentro onclick o dentro una funzione richiamata da onclick).
D'altra parte puoi anche usare una variabile globale se vuoi memorizzare da qualche parte l'id del bottone cliccato:
var lastClickedId;
function addCol(...){
...
cell[0].onclick = function(){
...
lastClickedId = this.id;
...
}
...
}
Però non sapendo quello che ci devi fare non so cosa ti convenga fare...

Ballantine
29-08-2012, 11:21
Puoi mettere nella pagina un campo nascosto:


<input type="hidden" id="numeroRiga" />


e poi valorizzarlo in questo modo:


cell[0].onclick = function()
{
document.getElementById("numeroRiga").value = this.id;

//test
alert('riga selezionata: ' + document.getElementById("numeroRiga").value);
};

manu0087
30-08-2012, 08:48
ciao,
sì penso di fare così come hai suggerito te.


cell[0].onclick = function()
{
document.getElementById('mat').value=document.getElementById(tableID).getElementsByTagName('tbody')[0].getElementsByTagName('tr')[this.name].getElementsByTagName('td')[1].innerHTML);
document.getElementById('prog').value=document.getElementById(tableID).getElementsByTagName('tbody')[0].getElementsByTagName('tr')[this.name].getElementsByTagName('td')[2].innerHTML);
document.manage_db_download.submit();
}


dove 'mat' e 'prog' sono due elementi nascosti dischiarati nella pagina html.

grazie a tutti per l aiuto.!