Filter table in Javascript

  • Creatore Discussione Creatore Discussione Durex
  • Data di inizio Data di inizio

Durex

Nuovo Utente
5 Mag 2014
6
0
0
Buona sera, è tutto il pomeriggio che cerco una soluzione ad un filter table che mi è stato richiesto e non sono stato in grado di portarlo a termine.
Devo fare un filtro su una tabella (table) di quattro colonne e ogni colonna ha un suo filtro che mi permette di fare selezione tra le righe e togliere quelle che non rientrano nei miei filtri.

Provo a mostrarvi un esempio di quello che intendo.
HTML:
<table>
<tr>
<td>Nome frutto</td>
<td>Numero frutto </td>
<td>prezzo </td>
<td>peso</td>
<tr>

<tr>
<td><input type="text" name="nome"></td>
<td><input type="text" name="numero"></td>
<td><input type="text" name="prezzo"></td>
<td><input type="text" name="peso"></td>
<tr>

<tr>
<td>Pera</td>
<td>4</td>
<td>5 euro</td>
<td>2 kg</td>
<tr>

<tr>
<td>Pesca</td>
<td>2</td>
<td>3 euro</td>
<td>1 kg</td>
<tr>

<tr>
<td>Ciliegia</td>
<td>2</td>
<td>3 euro</td>
<td>1 kg</td>
<tr>
</table>

Io tramite gli input text dovrei fare un filtro in javascript e visualizzare solo gli elementi che corrispondono effettivamente a quello che mi serve. Ad esempio se nella text della prima colonna scrivo la lettera C, mi devono sparire dalla tabella la riga con la pera e la pesca e così via per tutte le altre colonne.

Chi mi riesce ad aiutare?
Grazie in anticipo
 
Ho trovato questo che funziona con un singolo input.
E' possibile adattarlo per farlo funzionare nel mio caso?

HTML:
function filter(sender){
var txt = sender.value.toLowerCase(),
rows = document.getElementById("tabella").tBodies[0].rows,
ln = rows.length;

if ( txt!="" ){
while ( --ln > -1 )
rows[ln].style.display =
rows[ln].cells[1].firstChild.nodeValue.toLowerCase().indexOf(txt)!= 0?"none":"";

}else{
while ( --ln > -1 )
rows[ln].style.display = "";
}}
 

Discussioni simili