Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [PHP & MYSQL] MENU php da Mysql

    Salve a tutti,

    sto provando a realizzare un menu ad albero con php e mysql. Lavoro ormai da tempo con un ottimo script ajax, php e mysql con menu a tendina autoprodotto, tuttavia vorrei riuscire a fare in modo di avere un menu ad albero (categorie->sottocategorie->articoli). E mi perdo in un bicchiere d'acqua.
    Vediamo come si sviluppa il mio attuale problema: (iniziamo a recuperare le categorie)

    Codice PHP:
    <?php 

    include ("config.inc.php"); 
    include (
    "connect.php");

    $query ="SELECT * FROM cat_it ORDER BY idcat";

    $result mysql_query($query,$db) or die (mysql_error());
    $tot mysql_num_rows($result);

    while (
    $row mysql_fetch_array($result)) {


    $categoria $row['categoria'];



    echo 
    "<ul>
    [*] 
    $categoria "."[/list]";
     
     

    }
    ?>
    Così mi stampa tutte le categorie ovviamente. Per richiamare la sottocategoria associata devo utilizzare javascript o ajax?

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    ajax perchè devi andare sul server a fare la query

  3. #3
    ok lo pensavo
    Qualche dritta su risorse in rete che conosci? Sto googlando ma non trovo, oppure non sto cercando nel modo corretto...

  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    a che livello sei messo??? ti consiglio di usare un framework ad esempio jQuery

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    in base alle dimensioni del menu secondo me è meglio caricare tutto subito e farla finita piuttosto che fare vagonate di query al db senza ragione...

    comunque per animare il tutto usa javascript, magari jquery come suggerito ^^

  6. #6
    Allora sto proseguendo nel tentativo di trovare una soluzione, ma qui con i nodi sto sbagliando di sicuro qualcosa perché il risultato è incompleto. Ho recuperato un codice javascript per la gestione dei nodi ed ho cercato di aggiornare il mio file. Questo il codice:

    Codice PHP:
    <script type="text/javascript">
    <!--
    if (document.images) {
       var lastNode;
    }

    function showItem(node) {
        if (lastNode != null ) {
            var tempNode = lastNode.parentNode.firstChild
            while (tempNode != null) {
                if (tempNode.nodeName == "DIV" && tempNode.className == "item") {
                    tempNode.style.display="none";
                    }
                tempNode = tempNode.nextSibling;
                }
        }
        lastNode=node;
        
        var itemNode = node.nextSibling;        

        while (itemNode.nodeName != "DIV" && itemNode.className != "item")  {
            itemNode = itemNode.nextSibling;
        }

        var tempNode = node.parentNode.firstChild
        while (tempNode != null) {
            if (tempNode.nodeName == "DIV" && tempNode.className == "item") {
                if (tempNode.style.display == "none"){
                tempNode.style.display="block";
                 }

                 else
                 {
                tempNode.style.display = "none";
                }
            }
            tempNode = tempNode.nextSibling;
        }
    }
    //-->
    </script>

    <body>
     <?php 

    include ("config.inc.php"); 
    include (
    "connect.php");

    $query ="SELECT * FROM cat_it ORDER BY idcat";

    $result mysql_query($query,$db) or die (mysql_error());
    $tot mysql_num_rows($result);

    while (
    $row mysql_fetch_array($result)) {

    $id $row['idcat'];
    $categoria $row['categoria'];


    echo 
    "<table>
    <tr >
            
          <td colspan='2'  class='nav1stLevel'> [url='#']
    $categoria[/url]
            <div class='item' style='display:none;'> 
                <table cellspacing='0' cellpadding='0' border='0'>
                <tr ><td width='10' bgcolor='#FFFFFF' >>
    $link2</td>            
                  <td colspan='2'  bgcolor='#FFFFFF' width='160'> 

                  [url='...'][/url] 
                </td>
                </tr>
                
          </tr>
    </table>"
    ;
     
     
    //}
    }
    ?>
    così facendo mi compare soltanto una voce e non tutti le voci delle categorie...

    L'idea è giusta però? E' la strada corretta per un menu verticale che recupera valori da mysql?

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    la cosa migliore è far sputare a php i dati in formato json, così che javascript sia in grado di gestirli in maniera più semplice.

  8. #8
    quindi come potrei procedere con JSON? Suggerimenti pratici?

    Grazie

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    i dati che fai estrarre a php mettili in un array in base ai valori che ti servono e poi trasformali in un json con json_encode a quel punto fai l'echo del json così ottenuto, che javascript è in grado di navigare come se fosse un semplice dizionario.

    trovi dettagli su json_encode su php.net, mentre puoi trovare vari esempi sul come navigare all'interno di un json su javascript.

    se usi jquery buona parte del lavoro la gestisce già lui.

    http://api.jquery.com/jQuery.getJSON/

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    triplo messaggio :/

    e non c'è modo di cancellarli dannazione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.