Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Ordionamento tabella: problema confronto stringhe

    salve a tutti,

    dovrei ordinare una tabella, o meglio far visualizzare all'utente solo le righe che corrispondono ad un determinato filtro.

    quindi ho pensato di inserire un input type per ogni colonna in cui l'utente digita qualcosa.

    in base a quello che digita "scompaiono" alcune righe.

    il problema è riesco a far visualizzare i campi della tabella che contengono i valori inseriti.
    io vorrei far visualizzare quelli che iniziano per i valori inseriti!

    questa è la funzione js:

    codice:
    function filter (phrase, _id){
    		var words = phrase.value.toLowerCase().split(" ");
    		var table = document.getElementById(_id);
    		var ele;
    		for (var r = 1; r < table.rows.length; r++){
    			ele = table.rows[r].innerHTML.replace(/<[^>]+>/g,"");
    				var displayStyle = 'none';
    				for (var i = 0; i < words.length; i++) {
    					if (ele.toLowerCase().indexOf(words[i])>=0) {
    						displayStyle = '';
    					} else {
    						displayStyle = 'none';
    						break;
    					}
    				}
    			table.rows[r].style.display = displayStyle;
    		}
    	}
    il problema è l'uso di indexOf...
    ho provato ad usare substring o substr ma poi mi incarto nel ciclo for!

    grazie per l'aiuto e un saluto!
    - Hamburger + Soppressata

  2. #2
    ho risolto così:

    codice:
    function filter (term, _id, cellNr){
                   
                   var suche = term.value.toLowerCase();
                   var table = document.getElementById(_id);
                   var ele;
                   if(term.value == ''){
                           resetfilter(_id);
                           return;
                   }
                   for (var r = 1; r < table.rows.length; r++){
                           ele = table.rows[r].cells[cellNr].innerHTML.replace(/<[^>]+>/g,"");
                           ele = ele.replace(/ /g,"");
                           if (ele.toLowerCase().indexOf(suche)==0 ){
                                   
                                   table.rows[r].style.display = '';
                           } else 
                                   table.rows[r].style.display = 'none';
                   }
           }
    se volete potete chiudere, dopo averlo controllato!

    ringrazio ulmar (offline)
    - Hamburger + Soppressata

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.