Pagina 1 din 1

Preluare date din linie tabel html afisat cu Ajax

Scris: Mar Iun 09, 2015
de andras
Salut,
Din ajax() imi rezulta randurile unui tabel html:

Cod: Selectaţi tot

<?php
$re_html ='';
    while($rand = mysql_fetch_assoc($rezultateistoric)) {
$re_html .='<tr >';                              
$re_html .='<td style="color: #BFBFBF;font-weight:bold;word-wrap: break-word;width:330px;">'.$rand['pn'].' </td>';
$re_html .='<td style="color: #BFBFBF;font-weight:bold;word-wrap: break-word;width:340px;">'.$rand['denumire'].' </td>';              
$re_html .='</tr>';      
} 
echo $re_html;
?>
Pe care il pun in pagina in tabel html intr-un div:

Cod: Selectaţi tot

<div style="overflow-y:auto;height:60%;" >
<table cellspacing="0" cellpadding="0" frame="box" rule="all" style="height:10%;border: 5px solid #DBDBDB;" >
<tbody id="idistoric" class="clickable" >
<!-- aici vine rezultatul functiei ajax() -->
</tbody>
</table>
</div>
Folosesc acest cod javascript/jquery sa accesez coloana pe care se da clic:

Cod: Selectaţi tot

<script  type="text/javascript">
$(document).ready(function()  {
  $('.clickable tr td').on('mousedown', function (e) {
    clickableRowListener(this, e);
  });
});
function clickableRowListener(that, e) {
 alert('salut');
}
</script>

Cum preiau datele unei linii pe care dau click intr-o tabela html venita din ajax() bazindu-ma numai pe table.row.cells[0] si table.row.cells[1] ?
Am n linii in functie de numarul de inregistrari din BD si am 2 coloane, cells[0] respectiv cells[1]. Valoarea acestora vreau sa preiau cu jQuery. Sau se poate si altfel? Multumesc.

Preluare date din linie tabel html afisat cu Ajax

Scris: Mar Iun 09, 2015
de MarPlo
Salut
Daca randurile de tabel sunt afisate prin ajax, ca sa preiei in javascript datele unei coloane pe care se da clic, cel mai usor e sa adaugi atributul "onclick" in tag-urile <td> cand le creezi pe server (in php) prin care trimiti obiectul acelui element la o functie JS din acea pagina.
De exemplu, in php:

Cod: Selectaţi tot

$re_html .='<td class="clasa_pt_css" onclick="numeFun(this);">'.$rand['pn'].' </td>'; 
Iar in <script> din pagina creezi functia accesata:

Cod: Selectaţi tot

function numeFun(elm){
  alert(elm.innerHTML);
}

Preluare date din linie tabel html afisat cu Ajax

Scris: Mar Iun 09, 2015
de andras
Functioneaza, dar as vrea sa mai fac un pas, sa preiau din linia respectiva (in care dau click) ambele <td>-uri (am 2 coloane) in variabile separate in JS. Cum fac asta? Multumesc.

Preluare date din linie tabel html afisat cu Ajax

Scris: Mar Iun 09, 2015
de MarPlo
Se poate adauga atributul "onclick" in tag-ul <tr>, apoi te poti folosi de functia din acest exemplu:

Cod: Selectaţi tot

<table border="1">
<tr onclick="lineData(this);">
  <td class="clasa_pt_css"> col1</td>
  <td class="clasa_pt_css"> col2</td>
</tr>
</table>

<script>
function lineData(elm){
  var cols = elm.querySelectorAll('td');  // get columns from elm (row)
  var c1_cnt = cols[0].innerHTML;  // content 1st column
  var c2_cnt = cols[1].innerHTML;  // content 2nd column

  // test
  alert(c1_cnt +' / '+ c2_cnt);
}
</script>
Demo:
Clic pe o coloana
col1 | col2

Preluare date din linie tabel html afisat cu Ajax

Scris: Mar Iun 09, 2015
de andras
Ca de obicei solutiile date de tine ma ajuta mult. De dimineata ma chinui sa gasesc o varianta. Multumesc mult.