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

    Menu ad albero (treemenu)

    Salve a tutti.
    Ho un problema abbastanza ostico (almeno per me).
    devo realizzare un menu ad albero per un'applicazione php che recupera i dati da un db mysql.
    Ho trovato un bel menu free su internet in cui il menu e' statico.

    Il problema e' che quando cerco di inserigli i dati del db con l'istruzione mysql_fetch_object ho dei seri problemi in quanto mi visualizza o solo il primo dato dell'array o l'ultimo, invece io devo creare un tree prendendo la gerarchia da un campo chiamato father nel database.

    Vi allego il link dove prelevare i file dell'esempio modificati da me.

    http://www.infoservice-net.it/TreeMenu.zip

    Nell'esempio c'e' anche il db mysql e un'esportazione di dati di esempio della tabella mantis_project_table

    A chi servisse.................... :sgrat:

    Gli originali sono free all'indirizzo http://pear.php.net/package-info.php?pacid=77.


    :gren: Grazie infinite a chi volesse darmi una mano.

  2. #2
    Utente di HTML.it L'avatar di flessciato
    Registrato dal
    Jun 2002
    Messaggi
    1,522

    scusa ma

    non fai prima a farlo in javascript in 2/3 versioni?? quante barre diverse ti servono?? cioè...devi usare un database per aggiungere i valori ai campi dell'albero??
    Slack 10 - Apple G5 2.5 - winzoz xp
    php/mysql/apache
    Flash MX / roba in 3D / roba per il video e l'audio

  3. #3
    A questo punto va bene qualunque cosa sono disperato.

    > cioè...devi usare un database per aggiungere i valori ai campi dell'albero??

    Si, ho un db mysql in cui ci sono i campi id, name e father (che e' l'id del menu padre, 0 se e' alla radice)
    In pratica devo visualizzare un treemenu seguendo il campo father e visualizzando il campo name ramificato.

    Spero di essermi spiegato.
    Grazie ancora per la risposta.

    Federico.

  4. #4
    :master: :master:

    e se fai una funzione ricorsiva a cui passi il campo father?

  5. #5
    > e se fai una funzione ricorsiva a cui passi il campo father?

    Hai un esempio per spiegarti meglio, sai sono un po' neofita con mysql e gli script.

    Grazie

  6. #6
    Io ho fatto una funzione cosi', vedi se ci capisci qualcosa:

    .......................
    // father=0 per provare ma anche cosi' non funziona poi sostituisco con variabile e faccio un ciclo

    $sql = "SELECT * FROM mantis_project_table where father=0";
    $results = mysql_query($sql, $g_port) or die('Could not execute query');
    $num = mysql_num_rows($results);
    //$record =mysql_fetch_array($results);

    $icon = 'folder.gif';
    $expandedIcon = 'folder-expanded.gif';
    $menu = new HTML_TreeMenu();
    while ($record=mysql_fetch_array($results)) {

    //father=0
    $node1 = new HTML_TreeNode(array('text' => $record[name], 'link' => "test.php", 'icon' => $icon, 'expandedIcon' => $expandedIcon), array('onclick' => "", 'onexpand' => ""));
    //testo con un echo se funziona (qui lo fa)
    echo $record["name"]."
    \n";//}

    $menu->addItem($node1);
    next ($record);

    //menu seconda categoria
    //$node1->addItem(new HTML_TreeNode(array('text' => $record[name], 'link' => "test.php", 'icon' => $icon, 'expandedIcon' => $expandedIcon)));

    //menu seconda categoria il secondo
    //$node1_1 = &$node1->addItem(new HTML_TreeNode(array('text' => $record[name], 'link' => "test.php", 'icon' => $icon, 'expandedIcon' => $expandedIcon)));

    ////menu seconda categoria 2-1 (sotto categoria il secondo)
    //$node1_1_1 = &$node1_1->addItem(new HTML_TreeNode(array('text' => $record[name], 'link' => "test.php", 'icon' => $icon, 'expandedIcon' => $expandedIcon)));

    ////menu seconda categoria 2-1 (sotto categoria il secondo) il secondo
    //$node1_1_1_1 = &$node1_1->addItem(new HTML_TreeNode(array('text' => $record[name], 'link' => "test.php", 'icon' => $icon, 'expandedIcon' => $expandedIcon)));

    ////menu seconda categoria 3 (sotto categoria il secondo il secondo)
    //$node1_1_1_1->addItem(new HTML_TreeNode(array('text' => $record[name], 'link' => "test.php", 'icon' => $icon, 'expandedIcon' => $expandedIcon, 'cssClass' => 'treeMenuBold')));
    //menu seconda categoria 2 il terzo
    //$node1->addItem(new HTML_TreeNode(array('text' => $record[name], 'link' => "test.php", 'icon' => $icon, 'expandedIcon' => $expandedIcon)));

    //$menu->addItem($node1_1_1);
    }
    // Create the presentation class
    $treeMenu = &new HTML_TreeMenu_DHTML($menu, array('images' => '../images', 'defaultClass' => 'treeMenuDefault'));
    $listBox = &new HTML_TreeMenu_Listbox($menu, array('linkTarget' => '_self'));



    In teoria questo dovrebbe restituirmi un menu con 3 valori (la query nel database per father=0 e' uguale a tre righe) con, ad esempio "Progetto1", "Progetto4", "Progetto6".
    Invece la query mi restituisce solo "Progetto6" e lo ripete 3 volte.
    Come puoi vedere nei commenti ho aggiunto il comando echo nel ciclo per vedere se l'array e' giusto. eeeee udite udite li che non me ne frega niente funziona. Infatti mi restituisce Progetto1, Progetto4, Progetto6.
    Uffa non so piu' che pesci pigliare. Sto odiando il php.

  7. #7
    Utente di HTML.it L'avatar di flessciato
    Registrato dal
    Jun 2002
    Messaggi
    1,522

    praticità

    ma seiete pazziiiiii???

    :quote:

    tutto quel codice per fare cosa? una barra di navigazione!

    ma andiamo!!!!!

    Sai che ti fai ?? Una bella barra in Flash!!! oppure se proprio vuoi figheggiare con il PHP lascia stare il database: usa piuttosto php+XML !

    Fai prima ad aggiornare i dati... è molto più veloce e non usi....UN DATABASE!!!! Ed inoltre hai una visione più chiara (ad albero) di quello che stai facendo. Di nodi poi ne puoi aggiungere quanti ne vuoi.

    :mavieni:
    Slack 10 - Apple G5 2.5 - winzoz xp
    php/mysql/apache
    Flash MX / roba in 3D / roba per il video e l'audio

  8. #8
    Ciao flessciato,
    anche tu hai ragione. Ma pensi che se avessi scelta non lo farei.
    Ovvio che si.

    Purtroppo devo implementare questa modifica su un sw gia' sviluppato che registra gli interventi di manutenzione.

    Non e' un sitarello.
    Questo sw memorizza i dati nel db mysql e da li li devo recuperare, anche per fare il menu che come puoi immaginare si crea dinamicamente quando l'admin inserisce i componenti delle macchine da andare a monitorare.
    Ovvio che non posso modificare l'xml tutte le volte che uno decide di aggiungere o togliere una parte o componente dell'apparecchiatura o di aggiungere una nuova apparecchiatura.

    Quindi non posso farne a meno.
    La domanda e' sempre la stessa. Qualcuno ha idea su come si faccia?

    Grazie.

  9. #9
    Utente di HTML.it L'avatar di flessciato
    Registrato dal
    Jun 2002
    Messaggi
    1,522

    ah

    :quote: beh questa si che è new economy: di "economy" di sicuro non c'è il tempo!! :quote:

    Comunque hai fatto bene a specificarmelo: adesso ho capito ( )

    rifletto e poi ti so dire (spero)....................
    Slack 10 - Apple G5 2.5 - winzoz xp
    php/mysql/apache
    Flash MX / roba in 3D / roba per il video e l'audio

  10. #10
    Utente di HTML.it L'avatar di flessciato
    Registrato dal
    Jun 2002
    Messaggi
    1,522

    domanda

    mi potresti spiegare dettagliatamente cosa devi fare ma con un esempio in generale tipo:

    ho 3 pulsanti...ogni pulsante a 5 sottopulsanti estratti da un database...il database etc...

    e poi mi scrivi quello che hai (tabelle, directory, immagini etc)...

    perchè non mi è molto chiara la "question"
    Slack 10 - Apple G5 2.5 - winzoz xp
    php/mysql/apache
    Flash MX / roba in 3D / roba per il video e l'audio

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.