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

    Elenco a comparsa - uso dei DIV e di una tabella

    Buongiorno a tutti,

    io ho questo codice che, premetto, funziona benissimo

    codice:
    <head>
        <title>Untitled</title>
    
    
    <script type="text/javascript" language="javascript">
    function visualizza(id){
      if (document.getElementById){
        if(document.getElementById(id).style.display == 'none'){
          document.getElementById(id).style.display = 'block';
        }else{
          document.getElementById(id).style.display = 'none';
        }
      }
    }
    </script>
    
    
    </head>
    
    <?php
    $query=mysqli_query($conn, "SELECT * FROM gruppi");
    $data=1;
    while ($dato = mysqli_fetch_assoc($query))
        { 
            $num_gruppo=mysqli_num_rows(mysqli_query($conn_mobilia, "SELECT * FROM materiale WHERE ID_genere=5 AND ID_gruppo=$dato[ID_gruppo]"));
            echo"<div><a href=\"#\" onclick=\"visualizza('immagine$data'); return false\">$dato[nome_gruppo] MATERIALE $num_gruppo</a></div>
            <div id=\"immagine$data\" style=\"display:none\">";
            $query2=mysqli_query($conn, "SELECT * FROM sezioni WHERE ID_gruppo=$dato[ID_gruppo]");
            while ($sez = mysqli_fetch_assoc($query2))
                {
                    $num_sezione=mysqli_num_rows(mysqli_query($conn_mobilia, "SELECT * FROM materiale WHERE ID_genere=5 AND ID_sezione=$sez[ID_sezione]"));
                    echo"<div><a>$sez[nome_sezione] MATERIALE $num_sezione</a></div>";
                }
            echo"</div>";
            $data++;
        }
    
    
    ?>
    In pratica è un elenco di gruppi con accanto il totale del materiale che ognuno possiede. Cliccando su un gruppo sotto di lui compaiono le varie sezioni mostrando nel dettaglio come è suddiviso il materiale.
    Come detto usando i DIV nessun problema, ma se volessi usare una tabella? Quindi prima le righe dei gruppi e cliccando su di loro compaiono sotto le righe delle relative sezioni.

    Ho provato magari modificando il JS con document.elementsByName ma non essendo molto pratico di questo linguaggio sicuramente sbaglio qualcosa (o più semplicemente cerco di fare una cosa impossibile)

    Spero di essere stato chiaro e ringrazio in anticipo per l'aiuto

  2. #2
    Nessuno riesce ad aiutarmi???
    Io sono riuscito solo a trovare questa soluzione ma il problema è che inserisco tutti i dati in un'unica linea e n'unica cella(tramite il <BR> per ogni dato) mentre io vorrei creare proprio una linea specifica per ogni dato con due celle a separare gli elementi richiamati

    codice:
    <head>
        <title>Untitled</title>
    
    
    <script type="text/javascript" language="javascript">
    function visualizza(id){
      if (document.getElementById){
        if(document.getElementById(id).style.display == 'none'){
          document.getElementById(id).style.display = 'block';
        }else{
          document.getElementById(id).style.display = 'none';
        }
      }
    }
    </script>
    
    
    </head>
    
    
    <body>
    <?php
    $query=mysqli_query($conn, "SELECT * FROM gruppi");
    $data=1;
    echo"<table align='center' width='600'>";
    while ($dato = mysqli_fetch_assoc($query))
        { 
            $num_gruppo=mysqli_num_rows(mysqli_query($conn_mobilia, "SELECT * FROM materiale WHERE ID_genere=5 AND ID_gruppo=$dato[ID_gruppo]"));
            echo"<tr><td><a href=\"#\" onclick=\"visualizza('immagine$data'); return false\">$dato[nome_gruppo] MATERIALE $num_gruppo</a></td></tr>";
            echo"<tr id=\"immagine$data\" name=\"immagine$data\" style=\"display:none\"><td>";
            $query2=mysqli_query($conn, "SELECT * FROM sezioni WHERE ID_gruppo=$dato[ID_gruppo]");
            while ($sez = mysqli_fetch_assoc($query2))
                {
                    $num_sezione=mysqli_num_rows(mysqli_query($conn_mobilia, "SELECT * FROM materiale WHERE ID_genere=5 AND ID_sezione=$sez[ID_sezione]"));
                    echo"$sez[nome_sezione] MATERIALE $num_sezione<br>";
                }
            echo"</td></tr>";
            $data++;
        }
    
    
    ?>
    </table>
    
    
    
    
    </body>

    Spero nel vostro aiuto

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Secondo me dovresti farci vedere un esempio (piccolo ed essenziale) contenente solo html.
    Tu mostri php, ma non sono tutti che lo conoscono .
    Perciò, html con codice javascript e spiegazione chiara di quello che si vuole ottenere.

    ps. ho insistito perchè io uso visual studio per collaudare il codice
    Pietro

  4. #4
    Quote Originariamente inviata da pietro09 Visualizza il messaggio
    Secondo me dovresti farci vedere un esempio (piccolo ed essenziale) contenente solo html.
    Tu mostri php, ma non sono tutti che lo conoscono .
    Perciò, html con codice javascript e spiegazione chiara di quello che si vuole ottenere.

    ps. ho insistito perchè io uso visual studio per collaudare il codice

    Hai ragione Pietro... ma a volte non sai mai dove postare il tuo problema se lo metti in php ti rimandano a Javascript e viceversa... cmq oggi ho risolto in un altro modo "elusivo"... ho inserito una tabella nella tabella e il risultato ottenuto è stato quello voluto (certo a parole sembra più complicato di quello che effettivamente è)

    Grazie cmq

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.