Δημιουργία multi - multi lever menu

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

Δημιουργία multi - multi lever menu

Δημοσίευση από txc » 16 Οκτ 2012 22:14

Καλησπέρα παιδιά,
μια ερώτηση έχοντας ψάξει αρκετά τις απαντήσεις εδώ :

Θέλω ένα οριζόντιο menu το οποίο θα εμφανίζει μέχρι και 3 διαφορετικά επίπεδα κατηγοριών.
Δηλαδή θα υπάρχει η βασική κατηγορία , κάτω από τη βασική κατηγορία θα κρέμεται μια άλλη κατηγορία και κάτω από αυτή άλλες υποκατηγορίες.

Σκέφτομαι η δομή του πίνακα να είναι ως εξής :

cat_id
cat_parent_id
cat_subparent_id

Στο cat_parent_id θα κρατάω τη σχέση μεταξύ πρώτης και δεύτερης κατηγορίας και στο cat_subparent_id τη σχέση μεταξύ της δεύτερης κατηγορίας και της τρίτης για να την εμφανίζω σωστά.

Αυτό το κείμενο εδώ περιγράφει αυτό που θέλω αλλά δε βλέπω να χωρίζεται κάπου το δεύτερο με το τρίτο επίπεδο, εκτός και αν χάνω κάτι :

Εδώ

όπως και αυτό : Εδώ

Και οι δύο περιγραφές μιλούν για αυτό που θέλω εγώ αλλά βλέπω ότι διαχειρίζονται μόνο το πεδίο cat_parent_id χωρίς να έχουν ένα έξτρα πεδίο όπως εγώ το cat_subparent_id

Ευχαριστώ εκ των προτέρων.

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Δημιουργία multi - multi lever menu

Δημοσίευση από korgr » 17 Οκτ 2012 00:58

Μόνο ένα parent id χρειάζεσαι, όσα levels και αν έχει το menu

txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

Δημιουργία multi - multi lever menu

Δημοσίευση από txc » 17 Οκτ 2012 09:16

τώρα που το σκέφτομαι, ο πρώτος διαχωρισμός θα γίνεται με parentid= 0
ο δεύτερος για όσα id έχουν το επιλεγμένο parentid=id
και ο τρίτος για όσα id έχουν το επιλεγμένο parentid=id και δεν έχουν αρχικό parentid=0

νομίζω αυτή είναι η λογική.

txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

Δημιουργία multi - multi lever menu

Δημοσίευση από txc » 09 Νοέμ 2012 23:55

Να ξαναγυρίσω πάλι σε αυτό που ρώταγα, έχω ένα πρόβλημα,
θέλω να εμφανίσω 3ων επιπέδων menu.

ξεκίνησα από το στατικό css και εμφανίζω μια χαρά,
ξεκινάω να χτίσω δυναμικά από βάση και είμαι σε αυτό το σημείο :

Κώδικας: Επιλογή όλων

<div class="suckertreemenu">
							<?php
$set_main_cats = mysql_query&#40;"SELECT * from tbl_category where cat_id in &#40;52,23&#41;"&#41;;
while &#40;$row = mysql_fetch_array&#40;$set_main_cats&#41;&#41; &#123;

echo "<ul id='treemenu1'>\n";
echo "<li>\n";
		echo "<a href='#'>" . $row&#91;'cat_name'&#93; . "</a>\n";
		$set_sub_cats = mysql_query&#40;"SELECT * from tbl_category where cat_parent_id = &#123;$row&#91;'cat_id'&#93;&#125;"&#41;;		
		echo "<ul>\n";
		while &#40;$sub = mysql_fetch_array&#40;$set_sub_cats&#41;&#41; &#123;		
			echo "<li><a href='#'>" . $sub&#91;'cat_name'&#93; . "</a></li>\n";		
		&#125;
		echo "</ul>\n";		
		echo "</li>\n";
		echo "</ul>\n";
	&#125;
	?>
</div>
Το πρόβλημα είναι ότι για τα δυο cat_id 23 και 52 μου φέρνει κανονικά τις κατηγορίες αλλά όταν περνάει το ποντίκι πάνω από τις κατηγορίες μόνο για τη πρώτη μου φέρνει τις υποκατηγορίες, για τη δεύτερη τίποτα.
Ενώ υπάρχουν υπο κατηγορίες και για τη δεύτερη,
καμιά βοήθεια?

ευχαριστώ

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Δημιουργία multi - multi lever menu

Δημοσίευση από fafos » 10 Νοέμ 2012 17:26

Prepei na dhmiourgseis mia function pou tha "looparei" mexri na gyrisei oles tis kathgories kai ypokathgories:

Κώδικας: Επιλογή όλων

$set_main_cats = mysql_query&#40;"SELECT * from tbl_category where cat_id in &#40;52,23&#41;"&#41;;
while &#40;$row = mysql_fetch_array&#40;$set_main_cats&#41;&#41;
&#123;

    //dhmiourgeis mia array me ta dedomena ths vashs sou-mporeis na valeis oti allo dedomeno exeis ekei mesa
    $menu_array&#91;$row&#91;'cat_id'&#93;&#93; = array&#40;
	'name' => $row&#91;'cat_name'&#93;, //to onoma ths kathgorias
	'parent' => $row&#91;'cat_parent_id'&#93;,//to parend id
	'CategoryID' => $row&#91;'cat_id'&#93;//to id ths kathgorias
	&#41;;
&#125;


//h function pou louparei tis kathgories - to paradeigma einai gia ena aplo katheto css menu - allazeis ta ul-li me ta dika sou dedomena&#58;
function vertical_css_menu&#40;$parent, $first_time&#41;
&#123;
    $has_childs = false;

    global $menu_array;
    foreach &#40;$menu_array as $key => $value&#41;
    &#123;

        if &#40;$value&#91;'parent'&#93; == $parent&#41;
        &#123;

            if &#40;$has_childs === false&#41;
            &#123;

                $has_childs = true;
                if &#40;$first_time == 1&#41;
                &#123;
                    echo '<ul>';
                &#125; else
                    echo '<ul>';
            &#125;
            echo '<li><a href="category.php?id=' . $value&#91;'CategoryID'&#93; . '">' . $value&#91;'name'&#93; .
                '</a>'; //diadromh &#40;url&#41; ths kathgorias
            vertical_css_menu&#40;$key, 0&#41;;//edo louparei tis kathgories - ypokathgories

            echo '</li>';
        &#125;
    &#125;
    if &#40;$has_childs === true&#41;
        echo '</ul>';
&#125;

//kai telos kaleis kai ektyponeis thn function&#58;

vertical_css_menu&#40;0, 1&#41;;
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

Δημιουργία multi - multi lever menu

Δημοσίευση από txc » 11 Νοέμ 2012 21:01

σε ευχαριστώ για την απάντηση, τελικά έτσι έκανα τη δουλειά μου αλλά χωρίς το τελευταίο επίπεδο.
Ο παρακάτω κώδικας έχει φέρνει όλες τις υποκατηγορίες για την κάθε υποκατηγορία, αλλά θέλω να έχω και τρίτο επίπεδο υποκατηγορίας, θα πρέπει καλύτερα να βάλω και ένα extra πεδίο sub_subparent το οποίο θα κρατάει τα id του τρίτου επιπέδου ή μπορώ να κάνω τη δουλειά μου με ένα parent_id μόνο?

Κώδικας: Επιλογή όλων

							<span class="label-left"></span>
							<div class="label-bg">						
							
							<?php
$set_main_cats = mysql_query&#40;"SELECT * from tbl_category where cat_parent_id=0 limit 5"&#41;;
while &#40;$row = mysql_fetch_array&#40;$set_main_cats&#41;&#41; &#123;

echo "<ul>\n";
echo "<li>\n";
		echo "<a href='#'>" . $row&#91;'cat_name'&#93; . "</a>\n";
		echo "<div class='dd'>";
		$set_sub_cats = mysql_query&#40;"SELECT * from tbl_category where cat_parent_id = &#123;$row&#91;'cat_id'&#93;&#125;"&#41;;		
		echo "<ul>\n";
		while &#40;$sub = mysql_fetch_array&#40;$set_sub_cats&#41;&#41; &#123;		
			echo "<li><a href='#'>" . $sub&#91;'cat_name'&#93; . "</a></li>\n";		
		&#125;
		echo "</ul>\n";		
		echo "</div>\n";
		echo "</li>\n";
	&#125;
	?>
						</div>
						<span class="label-right"></span>				

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Δημιουργία multi - multi lever menu

Δημοσίευση από fafos » 11 Νοέμ 2012 23:50

Dokimases auto pou dino? ta queries mesa se queries einai psilogyftia apo thn stigmh pou sou dinete h dynatothta na "loupareis" ta dedomena.. opos to exeis esy tha xreiazesai kai allo query gia thn 3h ypokathgoria, 4o query gia thn 4h kai paei legontas..

to parent_id arkei kai autos einai o skopos tou.. na mhn vazoume neo field sthn vash gia kathe neo epipedo..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

Δημιουργία multi - multi lever menu

Δημοσίευση από txc » 12 Νοέμ 2012 00:05

ναι το δοκίμασα απλά μου βγάζει τις πρώτες κατηγορίες χωρίς να εμφανίζονται οι υποκατηγορίες.

αυτό δουλεύει για οριζόντιο menu?

αν παρατήρησες έχω σε ένα σημείο το

Κώδικας: Επιλογή όλων

echo "<div class='dd'>"; 
αυτό που ακριβώς πρέπει να μπει στο κώδικα που έβαλες?

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Δημιουργία multi - multi lever menu

Δημοσίευση από fafos » 12 Νοέμ 2012 13:56

To paradeigma pou sou edosa einai apo auto: http://www.freestuff.gr/forums/viewtopic.php?t=52712

auto to div profanos einai gia kapoio script pou emfanizei tis kathgories me mouseover (javascript h aplh css)... den vlepo ti kodika xrhsimopoiei kai den mporo na sou po pos na allaxeis thn function gia na pareis to apotelesma pou thes.. an doseis ta arxeia css h kai lavascript pou xrhsimopoiei to menu sou isos to petyxoume :lol:
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

Δημιουργία multi - multi lever menu

Δημοσίευση από txc » 18 Νοέμ 2012 21:54

Τελικά ακολούθησα το link που έδωσες με το βοήθημά σου και έπεξε μια χαρά,
απλά μια απορία,
σε μια σελίδα θέλω να εμφανίσω φωτογραφίες με το lightbox μοντέλο,
το κακό είναι ότι το script που χρησιμοποιείς εδώ για εμφάνιση του menu :

Κώδικας: Επιλογή όλων

<script type="text/javascript" src="http&#58;//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
μου χτυπάει με ένα από αυτά από το lightbox :

Κώδικας: Επιλογή όλων

	<script src="js/prototype.js" type="text/javascript"></script>
		<script src="js/scriptaculous.js?load=effects" type="text/javascript"></script>
		<script src="js/lightbox.js" type="text/javascript"></script>
με αποτέλεσμα να μη μπορώ να τα χρησιμοποιήσω ταυτόχρονα, καμιά ιδέα?

ή να κοιτάξω κάποια άλλη λύση gallery?

ευχαριστώ

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Δημιουργία multi - multi lever menu

Δημοσίευση από fafos » 18 Νοέμ 2012 22:22

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

an kai mporeis na vreis kodika pou na douleuei to menu me thn prototype
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

Δημιουργία multi - multi lever menu

Δημοσίευση από txc » 18 Νοέμ 2012 23:52

ακολούθησα το link Που μου έστειλες αλλά τίποτα

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Δημιουργία multi - multi lever menu

Δημοσίευση από fafos » 19 Νοέμ 2012 00:06

dokimase kai me: jQuery.noConflict(true);
kai sto jquery script tou menu opou exei to dolario ($) allaxe to me to jQuery
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

Δημιουργία multi - multi lever menu

Δημοσίευση από txc » 19 Νοέμ 2012 17:38

Έκανα αυτό :

Κώδικας: Επιλογή όλων

		<script src="js/prototype.js" type="text/javascript"></script>
		<script src="js/scriptaculous.js?load=effects" type="text/javascript"></script>
		<script src="js/lightbox.js" type="text/javascript"></script>	
		<script type="text/javascript">
		jQuery.noConflict&#40;true&#41;; 
		</script>

		<script src="js/jquery-1.7.min.js" type="text/javascript"></script>			
		<script src="js/superfish/hoverIntent.js"></script> 
		<script src="js/superfish/superfish.js"></script> 
		<script src="js/superfish/supersubs.js"></script> 	
		<script> 
	 
		$&#40;document&#41;.ready&#40;function&#40;&#41;&#123; 
			$&#40;"ul.sf-menu"&#41;.supersubs&#40;&#123; 
				minWidth&#58;    12,   // minimum width of sub-menus in em units 
				maxWidth&#58;    27,   // maximum width of sub-menus in em units 
				extraWidth&#58;  1     // extra width can ensure lines don't sometimes turn over 
								   // due to slight rounding differences and font-family 
			&#125;&#41;.superfish&#40;&#41;;  // call supersubs first, then superfish, so that subs are 
							 // not display&#58;none when measuring. Call before initialising 
							 // containing tabs for same reason. 
		&#125;&#41;; 
	 
	</script>		
		<link rel="stylesheet" media="screen" href="lightbox.css" />
		<link rel="stylesheet" href="css/jquery.jscrollpane.css" type="text/css" media="all" />
		<link rel="stylesheet" media="screen" href="css/superfish/superfish.css" />
		<link rel="stylesheet" media="screen" href="css/superfish/superfish-navbar.css" />	
και άλλαξα τα 3 js/superfish/ έτσι όπως είπες αλλά και πάλι τίποτα

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Δημιουργία multi - multi lever menu

Δημοσίευση από fafos » 19 Νοέμ 2012 18:24

allaxe kaita dolaria:

Κώδικας: Επιλογή όλων

      jQuery&#40;document&#41;.ready&#40;function&#40;&#41;&#123;
         jQuery&#40;"ul.sf-menu"&#41;.supersubs&#40;&#123;
            minWidth&#58;    12,   // minimum width of sub-menus in em units
            maxWidth&#58;    27,   // maximum width of sub-menus in em units
            extraWidth&#58;  1     // extra width can ensure lines don't sometimes turn over
                           // due to slight rounding differences and font-family
         &#125;&#41;.superfish&#40;&#41;;  // call supersubs first, then superfish, so that subs are
                      // not display&#58;none when measuring. Call before initialising
                      // containing tabs for same reason.
      &#125;&#41;; 
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες