ugrás a tartalomhoz

Táblázat elemeinek onClick eseményei

mokat · 2009. Aug. 26. (Sze), 15.40
Sziasztok:

Egy táblázatba listázok ki eseményeket és hozzá kapcsolódó egyéb adatokat (php-val mysql-ből), és azt szeretném megoldani, hogy ha rákattint valaki az egyik eseményre (cellára) akkor az behoz egy másik oldalt aminek átadja a cella tartalmát változóként.
De már ott elakadtam, hogy az adott eseményre kattintva ki szeretném "alert" ablakba írni a kiválasztott cella tartalmát, ugyanis mindig a legelső cella tartalma íródik ki. Gondolom valmelyiket léptetni kéne, de akkor is honnét tudja majd, hogy melyikre kattintottam?

Lebutítva a script:
<table>

$esemenylistazo = mysql_query("SELECT meccslista, H, D, V, ervenyesseg, vegeredmeny FROM hategy") or die(mysql_error());

while($info = mysql_fetch_array( $esemenylistazo ))

{
Print "<tr>
<td id='esemenyTD' onClick='katt()')>".$info['meccslista']."</td>
<td align=center>".$info['H']."</td>
<td align=center>".$info['D']."</td>
<td align=center>".$info['V']."</td>
<td align=center>".$info['ervenyesseg']."</td>
<td align=center>".$info['vegeredmeny']."</td>
</tr>";
}

?>
</table>

<script type="text/javascript">
function katt() {
x=document.getElementById("esemenyTD");
window.location="masikoldal.php";
alert(x.firstChild.nodeValue);
};

</script>

minden segítségért előre is köszi!
 
1

id = egyedi

gex · 2009. Aug. 26. (Sze), 16.10
ha minden cellának esemenyTD id-t adsz, akkor ne csodálkozz hogy az elsőt fogja visszaadni. honnan tudná hogy melyiket adja vissza?

olvasd el András cikkét, hasznos lesz.
2

csak pelda

duplabe · 2009. Aug. 26. (Sze), 16.28
hogy legyen honnan elindulnod:
  1. <html lang="en">  
  2.     <head>  
  3.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  4.     </head>  
  5.     <body>  
  6.           
  7.         <table id="tablacska">  
  8.             <tr>  
  9.                 <td>booo</td>  
  10.                 <td>bááá</td>  
  11.                 <td>béééé</td>  
  12.             </tr>  
  13.             <tr>  
  14.                 <td>bőőőő</td>  
  15.                 <td>bűűűű</td>  
  16.                 <td>bíííí</td>  
  17.             </tr>  
  18.         </table>  
  19.         <script type="text/javascript">              
  20.             var td = document.getElementById('tablacska').getElementsByTagName('td');  
  21.             for(var i=0;i<td.length;i++)  
  22.             {  
  23.                 td[i].onclick = function()  
  24.                 {  
  25.                     alert(this.innerHTML);  
  26.                 }  
  27.             }  
  28.         </script>  
  29.     </body>  
  30. </html>  
3

bjutifull

mokat · 2009. Aug. 26. (Sze), 18.26
köszi!!!!! átjavítottam működik. <3 weblabor&javascript <3
azért a lelkek megnyugtatása végett:

<table id="esemenylista">

<?php

$esemenylistazo = mysql_query("SELECT meccslista, H, D, V, ervenyesseg, vegeredmeny FROM hategy") or die(mysql_error());

while($info = mysql_fetch_array( $esemenylistazo ))

{
Print "<tr><td>".$info['meccslista']."</td><td align=center>".$info['H']."</td><td align=center>".$info['D']."</td><td align=center>".$info['V']."</td><td align=center>".$info['ervenyesseg']."</td><td align=center>".$info['vegeredmeny']."</td></tr>";
}

?>

</table>

<script type="text/javascript">
var td = document.getElementById('esemenylista').getElementsByTagName('td');
for(var i=0;i<td.length;i++)
{
td[i].onclick = function()
{
alert(this.innerHTML);
}
}
</script>
4

mondjuk...

mokat · 2009. Aug. 27. (Cs), 11.22
egyetlen apróság még maradt. Azért akartam én az 'esemény' td-jét valami id-val megjelölni hogy csak arra az egy bizonyos oszlopra szeretném, hogy működjön. Tehát a kiválasztott sor első td-jét dobja fel, legyen akárhova kattintok az adott sorban:
5

akkor a tablabol nem a

duplabe · 2009. Aug. 27. (Cs), 11.32
akkor a tablabol nem a td-ket, hanem a tr-eket gyujtod le, majd ezen belul a td-ket. ezek kozul veszed mindig az elsot, es arra raksz onclick esemenyt.

kb igy:
  1. var tr = document.getElementById('tablacska').getElementsByTagName('tr');  
  2. for(var i=0;i<tr.length;i++)  
  3. {  
  4.     tr[i].getElementsByTagName('td')[0].onclick = function()  
  5.     {  
  6.         alert(this.innerHTML);  
  7.     }  
  8. }  
ps: erdemes lenne megtanulni egy js frameworkot :) (pl: jQuery)
6

oopsz, most latom, hogy az

duplabe · 2009. Aug. 27. (Cs), 11.35
oopsz, most latom, hogy az egesz tr-re akarsz onclicket.

akkor:
  1. var tr = document.getElementById('tablacska').getElementsByTagName('tr');  
  2.             for(var i=0;i<tr.length;i++)  
  3.             {  
  4.                 tr[i].onclick = function()  
  5.                 {  
  6.                     alert(this.getElementsByTagName('td')[0].innerHTML);  
  7.                 }  
  8.             }  
7

mindig ez a szintaktika...

mokat · 2009. Aug. 27. (Cs), 12.55
nálam nagy mizéria ez a szokatlan nagybetű kisbetű váltogatás az elemeknél, valami ilyesmit hekkeltem össze, de peszre az életképtelen volt :) Köszi mégx1!