Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    8

    Cambio ordine in Ordina Tabella

    Salve raga, è il mio primo msg in questo forum. Forum veramente utilissimo.

    Cmq, come da titolo, volevo modificare l'ordine di questa tabella che ho trovato sul sito
    http://javascript.html.it/script/ved...rdina-tabella/
    cioè, mi spiego meglio, se notate lui ordina in base alla tabella "Name", ora siccome io ancora non ne capisco un tubo di javascript, cosa devo cambiare per far si che lui mi ordina in base alla tabella "ID" e non "Name".

    Spero in una vostra risposta
    Grazie anticipatamente

    Ilario

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    8
    Forse mi conviene mettere direttamente il file .js...

    codice:
    var TINY={};
    
    function T$(i){return document.getElementById(i)}
    function T$$(e,p){return p.getElementsByTagName(e)}
    
    TINY.table=function(){
    	function sorter(n){this.n=n; this.pagesize=20; this.paginate=0}
    	sorter.prototype.init=function(e,f){
    		var t=ge(e), i=0; this.e=e; this.l=t.r.length; t.a=[];
    		t.h=T$$('thead',T$(e))[0].rows[0]; t.w=t.h.cells.length;
    		for(i;i<t.w;i++){
    			var c=t.h.cells[i];
    			if(c.className!='nosort'){
    				c.className=this.head; c.onclick=new Function(this.n+'.wk(this.cellIndex)')
    			}
    		}
    		for(i=0;i<this.l;i++){t.a[i]={}}
    		if(f!=null){var a=new Function(this.n+'.wk('+f+')'); a()}
    		if(this.paginate){this.g=1; this.pages()}
    	};
    	sorter.prototype.wk=function(y){
    		var t=ge(this.e), x=t.h.cells[y], i=0;
    		for(i;i<this.l;i++){
          t.a[i].o=i; var v=t.r[i].cells[y]; t.r[i].style.display='';
          while(v.hasChildNodes()){v=v.firstChild}
          t.a[i].v=v.nodeValue?v.nodeValue:''
        }
    		for(i=0;i<t.w;i++){var c=t.h.cells[i]; if(c.className!='nosort'){c.className=this.head}}
    		if(t.p==y){t.a.reverse(); x.className=t.d?this.asc:this.desc; t.d=t.d?0:1}
    		else{t.p=y; t.a.sort(cp); t.d=0; x.className=this.asc}
    		var n=document.createElement('tbody');
    		for(i=0;i<this.l;i++){
    			var r=t.r[t.a[i].o].cloneNode(true); n.appendChild(r);
    			r.className=i%2==0?this.even:this.odd; var cells=T$$('td',r);
    			for(var z=0;z<t.w;z++){cells[z].className=y==z?i%2==0?this.evensel:this.oddsel:''}
    		}
    		t.replaceChild(n,t.b); if(this.paginate){this.size(this.pagesize)}
    	};
    	sorter.prototype.page=function(s){
    		var t=ge(this.e), i=0, l=s+parseInt(this.pagesize);
    		if(this.currentid&&this.limitid){T$(this.currentid).innerHTML=this.g}
    		for(i;i<this.l;i++){t.r[i].style.display=i>=s&&i<l?'':'none'}
    	};
    	sorter.prototype.move=function(d,m){
    		var s=d==1?(m?this.d:this.g+1):(m?1:this.g-1);
    		if(s<=this.d&&s>0){this.g=s; this.page((s-1)*this.pagesize)}
    	};
    	sorter.prototype.size=function(s){
    		this.pagesize=s; this.g=1; this.pages(); this.page(0);
    		if(this.currentid&&this.limitid){T$(this.limitid).innerHTML=this.d}
    	};
    	sorter.prototype.pages=function(){this.d=Math.ceil(this.l/this.pagesize)};
    	function ge(e){var t=T$(e); t.b=T$$('tbody',t)[0]; t.r=t.b.rows; return t};
    	function cp(f,c){
    		var g,h; f=g=f.v.toLowerCase(), c=h=c.v.toLowerCase();
    		var i=parseFloat(f.replace(/(\$|\,)/g,'')), n=parseFloat(c.replace(/(\$|\,)/g,''));
    		if(!isNaN(i)&&!isNaN(n)){g=i,h=n}
    		i=Date.parse(f); n=Date.parse(c);
    		if(!isNaN(i)&&!isNaN(n)){g=i; h=n}
    		return g>h?1:(g<h?-1:0)
    	};
    	return{sorter:sorter}
    }();
    e l'html è questo:

    codice:
    <p align="center"><table cellpadding="0" cellspacing="0" border="0" id="table" class="sortable">
    		<thead>
    			<tr>
    				<th class="nosort"><h3>ID</h3></th>
    				<th><h3>Nome</h3></th>
    				<th><h3>Nome di Battaglia</h3></th>
    				<th><h3>Mansione</h3></th>
    				<th><h3>Membro</h3></th>
    				<th><h3>Nascita</h3></th>
    				<th><h3>Foto</h3></th>
    				<th><h3>Grado</h3></th>
    				<th><h3></h3></th>
    				<th><h3></h3></th>
    				<th><h3></h3></th>
    			</tr>
    		</thead>
    		<tbody>
    			<tr>
    				<td>1</td>
    				<td>Pasquale</td>
    				<td>---</td>
    				<td>---</td>
    				<td>---</td>
    				<td>---</td>
    				<td>Civile / Non Civile</td>
    				<td></td>
    				<td></td>
    				<td></td>
    				<td></td>
    			</tr>
    			<tr>
    				<td>2</td>
    				<td>Antonio</td>
    				<td>---</td>
    				<td>---</td>
    				<td>---</td>
    				<td>---</td>
    				<td>Civile / Non Civile</td>
    				<td></td>
    				<td></td>
    				<td></td>
    				<td></td>
    			</tr>
                <tr>
    				<td>3</td>
    				<td>Giuseppe</td>
    				<td>---</td>
    				<td>---</td>
    				<td>---</td>
    				<td>---</td>
    				<td>Civile / Non Civile</td>
    				<td></td>
    				<td></td>
    				<td></td>
    				<td></td>
    			</tr>
                </tbody></table>

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    semplicemente togli class="nosort"
    da <th class="nosort"><h3>ID</h3></th>

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    8
    Originariamente inviato da Xinod
    semplicemente togli class="nosort"
    da <th class="nosort"><h3>ID</h3></th>
    Niente da fare, avevo già provato e non funziona così!
    Secondo me il problema non è nell'html ma nel javascript!

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    se prendo l' esempio cosi' come viene scaricato e tolgo class="nosort" al primo th posso ordinare anche per id
    confermi?

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    8
    Confermo, ma il mio problema persiste xkè quando vado a caricare la pagina lui mi ordina tutto in base alla tabella Nome!

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    8
    Son riuscito a risolvere tramite questo script che non tenevo nemmeno in conto xkè era nella pagina html

    codice:
    	<script type="text/javascript">
      var sorter = new TINY.table.sorter("sorter");
    	sorter.head = "head";
    	sorter.asc = "asc";
    	sorter.desc = "desc";
    	sorter.even = "evenrow";
    	sorter.odd = "oddrow";
    	sorter.evensel = "evenselected";
    	sorter.oddsel = "oddselected";
    	sorter.paginate = true;
    	sorter.currentid = "currentpage";
    	sorter.limitid = "pagelimit";
    	sorter.init("table",1);
      </script>
    basta cambiare il numero 1, con il numero della colonna che vuoi mettere in ordine alla prima apertura della pagina, di sorter.init("table",1).

    Per me il problema è risolto

    Grazie Xinod per le risposte!

  8. #8

    A PROPOSITO DI "tabella ordina"

    La mia non è risposta, ma una richiesta di aiuto.
    Dopo aver letto il post, ho variato "sorter.init("table",1);"e ho risolto anch'io il problema evidenziato nel post stesso.
    Non riesco però a formattare come vorrei la pagina web che contiene la tabella: vorrei il margine superiore e sinistro della pagina pari a ZERO, ma le normali operazioni di formattazione pagina (uso il vecchio FRONT PAGE) non producono alcun effetto e la pagina si presenta sempre con un margine di circa 20pt sia superiore che sinistro.
    Cosa devo fare ?
    grazie
    mary

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.