Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885

    nascondere parte della tabella tramite bottone o link

    ciao ,
    io possiedo una tabella con piu di 10 campi, ovviamente con una tabella cosi lunga l'utente deve scorrerre la pagina da sinistra a destra.
    io vorrei limitare ciò e per farlo ho pensato ad un modo per nascondere n campi della tabella , almeno quelli meno importanti.

    ho anche pensato che javascript era l'ideale per fare una cosa del genere , magari abbinando una bella lente di ingrandimento che quando ci sio clicca sopra fa visualizzare la tabella completa.

    purtroppo devo far fronte alla mia ignoraza nel mondo js e costretto a chiedervi un aiuto sostanziodo

    io ho creato una cosa del genere
    la parte sopra sono 2 campi della tabella in php

    Codice PHP:
    $data_ric $row['data_ricevuta'];
                    echo 
    "<td id=\"a\">$data_ric</td>";
                    
    $data_r  $row['data_registrazione'];
                    echo 
    "<td id=\"a\">$data_r</td></tr>";
                 }
                echo 
    "</table>";
                echo 
    "<input type=\"button\" name=\"nascondi elementi\" value=\"nascondi\" onnClick=\"function nascondino() retur true;\" />
                </form>"

    questo invece è lobrobrio js che ho creato
    codice:
    function nascondino(){
    	var elemento = document.GetElementByID('a');	
            elemento.style.visibility= "hidden"	;
    return true;
    }
    ma ovviamente non funziona ... quando clicco sul bottone creato non fa assolutamente nulla, a parte far vedere la pressione del bottone ...
    Per ora sto metttendo un bottone perchè ho trovato esempi su questo, ma vorrei poi mettere un link!
    grazie per i consigli!
    ciao

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, in una pagina gli id dovrebbero essere univoci e non doppi.
    Nell onclick si scrive cosi: onClik="javascript:nascondino();"

    visibility : hidden nascone l'elemento ma mantiene le dimensioni comunque anche se non si vede nulla. Piuttosto usa display:none

    Link o bottone non cambia basta che fai il tutto con l'onclick (se link metti nel href="#" o href="javascript:void(0)"

  3. #3
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    ho trovato questa magnifica guida su html.it guida

    mi ha spiegato come nascondere righe e/o colonne , ora sto cercando di modificarlo ...
    in effetti la guida dice esattamente ciò che mi hai fatto notare!
    ora lo so
    cmq
    il mio problema rimane anche se questo script funziona alla grande.

    io ho questi campi , ma dovrei farne sparire n in contemporanea per cui ho modellato lo script dall'esempio dato cosi

    codice:
    <script type="text/javascript">
    	/*Nascondere o visualizzare colonne di una tabella con formattazione th (vedere dataricerca)*/
    	function NascondiColonna(IDtabella,voce1,voce2,voce3,voce4,voce5,voce6,voce7){
    ModificaColonna(IDtabella,voce1,voce2,voce3,voce4,voce5,voce6,voce7,"none");
    }
    
    function MostraColonna(IDtabella,voce1,voce2,voce3,voce4,voce5,voce6,voce7){
    ModificaColonna(IDtabella,voce1,voce2,voce3,voce4,voce5,voce6,voce7,"");
    }
    function ModificaColonna(IDtabella,voce1,voce2,voce3,voce4,voce5,voce6,voce7,display){
    	var l = 1 ;
    	var voci = 7;
    ths=document.getElementById(IDtabella).tHead.rows[0].cells;
    for (l = 1 ; l <= voci ; l++){
    	voce = voce[l];
    for(i=0;i<ths.length;i++){
        htext=ths[i].firstChild.nodeValue;
        if(htext == voce)
            colonna=i;
        }
    if(colonna>=ths.length) return;
    ths[colonna].style.display=display;
    trs=document.getElementById(IDtabella).tBodies[0].rows;
    for(i=0;i<trs.length;i++){
        tds=trs[i].cells;
        tds[colonna].style.display=display;
        }
      }
    }
    
    function Ripristina(IDtabella){
    var trs=document.getElementById(IDtabella).tHead.rows;
    ths=trs[0].cells;
    for(i=0;i<ths.length;i++) ths[i].style.display="";
    trs=document.getElementById(IDtabella).tBodies[0].rows;
    for(i=0;i<trs.length;i++){
        tds=trs[i].cells;
        for(j=0;j<tds.length;+j++)
            tds[j].style.display="";
        }
    } 
    </script>
    ho anche inserito i vari valori nel link, lunica cosa che h modificato sono i valori voce1 , voce2 etc...

    per di più io vorrei che di default i valori non si vedano e poi con la pressione del link compaiano!

    ciao e grazie... attando facendo le mie ricerche !

  4. #4
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    modificando questo pezzo e inserendo n variabili in più avrò bisogno di un codice che cicli per tutte le eventuali variabili inserite

    codice:
    function NascondiColonna(IDtabella,voce1,voce2,voce3,voce4,voce5,voce6,voce7){
    ModificaColonna(IDtabella,voce1,voce2,voce3,voce4,voce5,voce6,voce7,"none");
    solo che qui mi da errore
    codice:
    function ModificaColonna(IDtabella,voce1,voce2,voce3,voce4,voce5,voce6,voce7,display){
    	var l = 1 ;
    	var voci = 7;
    ths=document.getElementById(IDtabella).tHead.rows[0].cells;
    for (l = 1 ; l <= voci ; l++){
    	voce = voce[l];
    qualcuno sa come posso fare per rendere in default le colonne non visibili e per farle comparire o scomparire a scelta tramite un link?
    grazie

  5. #5
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Per rendere di default non visibile o metti nell html style="display:none" o da css.
    In alternativa su onload della pagina nascondi quello che vuoi ma non cambia.

    Per il cilco se devi passare sempre quelle voci e comunque una lista che conosci a priori, puoi metterle in un array javascript direttamente nel file .js
    Codice PHP:
    var voci = new Array('voce1','voce2','voce3'); //tutte quelle che vuoi 
    per il ciclo quindi avrai

    Codice PHP:
    function ModificaColonna(IDtabelladisplay){

    ths=document.getElementById(IDtabella).tHead.rows[0].cells;//non so cos'e' questo
    for (voci.length l++){
        
    alert(voci[l]);  //voci[l] corrisponde alla voce nell array, io ho messo alert per prova 

  6. #6
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    ok , ho risolto in parte , ho inserito un dropdownlist e al suo interno le voci singole + tutte; in maniera da nascondere solo i singoli campi oppure tutti quelli che ho prestabilito.

    ma se io effettuo un onload non funziona (cio imputabile alla mia ignoranza)
    cmq io ho scritto ciò:
    Codice PHP:
    <table border=\"1\" id=\"dataricerca\" onload=\"defaultnascosti(this.[this.table].getElemetByI.value,'codice ','regione sociale','indirizzo','citt&agrave','provincia','codice postale');\"> 
    e questa è la funzione che ho inserito di prova
    Codice PHP:
    function defaultnascosti (IDtabella,voce1voce2voce3 voce4 voce5 voce6,"none"){
        var 
    voci = new Array ('voce1''voce2''voce3' 'voce4' 'voce5' 'voce6');
        for (var 
    voci.lengthi++){
            
    alert (voci[i]);
            }
        } 
    solo che non funziona ho provato a gestire anche onload come se fosse onclick... ma evidentemente non è corretto!

  7. #7
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    ho notato (utilizzando firebug) 2 errori a cui non riesco ad associarli una gran spiegazione:

    Elemento referenziato per ID/NAME a livello globale. Si dovrebbe invece utilizzare il document.getElementById(), standard W3C.
    [Break on this error] (no source for ) (riga 1)
    NascondiColonna is not defined
    function onchange(event) { NascondiColonna("dataricerca", this[this.selectedIndex].value); }(change )inserime...ent/seq/1 (riga 2)
    [Break on this error] <html>\ninserime...=debitore (riga 1)
    L'utilizzo di getBoxObjectFor() è deprecato. Se possibile utilizzare element.getBoundingClientRect().
    la funzione che fa scattare il tutto è questa
    Codice PHP:
     NascondiColonna("dataricerca"this[this.selectedIndex].value); 
    il fatto e che funziona, non mi arresta lo script e non mi impedisce di eseguire 'nascondi colonna'.

    ma in ogni caso mi da errore!
    come è possibile ciò?

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.