|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Apr 2011
Messaggi: 164
|
HTML -
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': Codice:
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); }; |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Apr 2011
Messaggi: 164
|
ciao,
in pratica quello che non riesco a fare è questo... Codice:
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); }; } } } grazie a tutti.!!. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2775
|
Tipo così?
Codice:
document.getElementById("resultContainer").innerHtml = value; |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Apr 2011
Messaggi: 164
|
ciao,
intanto grazie per l interessamento :-) cmq no, magari mi sono spiegato male... questo è il js: Codice:
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); }; pagina html che chiama js: Codice:
addCol('dataTable','<%=col %>','button','Download',6,1); Codice:
addCol('dataTable','<%=col %>','button','Download',6,1); riga=!?!?! |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2775
|
Immaginavo non fosse quello che intendevi
![]() 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... |
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: Apr 2011
Messaggi: 164
|
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.!! |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2775
|
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: Codice:
var lastClickedId; function addCol(...){ ... cell[0].onclick = function(){ ... lastClickedId = this.id; ... } ... } |
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: May 2004
Messaggi: 278
|
Puoi mettere nella pagina un campo nascosto:
Codice:
<input type="hidden" id="numeroRiga" /> Codice:
cell[0].onclick = function() { document.getElementById("numeroRiga").value = this.id; //test alert('riga selezionata: ' + document.getElementById("numeroRiga").value); };
__________________
PROCESSORE: AMD Athlon64 2800+ Boxed - MOTHERBOARD: Gigabyte K8NS nForce3 250 - SCHEDA VIDEO: 3D Prophet 9800 Pro 128MB - RAM: 512MB Corsair Value + 512 V-Data - CASE: Chieftech Dragon - ALIMENTATORE: Q-TEC 550W - HARD DISK: Seagate SATA 80 GB - LETTORE DVD: LG 16x52x - MASTERIZZATORE: Nec ND-3520 |
![]() |
![]() |
![]() |
#9 |
Member
Iscritto dal: Apr 2011
Messaggi: 164
|
ciao,
sì penso di fare così come hai suggerito te. Codice:
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(); } grazie a tutti per l aiuto.! |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:57.