Hej derude...
Jeg er ved at lave en menu til min webshop. Ønsker at lave noget lignende oscommerce se her
http://demo.oscommerce.com/ og
http://www.haburi.com/ .
Jeg har prøvet at lave noget lignende med noget kode jeg har fundet på nettet, men kan simpelhen ikke få det til at virke rigtigt. Når man trykker ud på trejde niveau forsinder de. se her og prøv her
http://webshop.vaerum.dk/administration/test8.php .
Håber der er nogen derude, som kan hjæpe mig...
Med Venlig Hilsen
Rasmus
www.vaeum.dk
<?php
include('../inc/config.php');
function getspaces ($intTMP)
{
//Her bestemmer vi hvad der skal ske for hvert mellemrum - dvs hvis du har lyst til at sætte punktum (.) istedet for (mellemrum) så retter du blot dette
for ($x=0;$x<$intTMP;$x++)
{
//Grunden til at jeg bruger $output .= er at punktummet (.) foran lighedtegnet bestemmer at det skal sættes på den iforvejen eksisterende variabel
//hvis $intTMP f.eks. er lig 2 som den vil blive efter Bundkort og CPU sætter den ikke bare til kun et enkelt mellemrum.
if (($x == $intTMP-1) && ($x != 0))
{
//Hvis $x er en tak mindre end $intTMP og anderledes end 0 skal den sætte - (-mellemrum) ind istedet for (mellemrum)
$output .= "- ";
}
else
{
//Ellers laver vi blot et mellemrum.
$output .= " ";
}
}
//her returnerer vi variablen $output's værdi.
return $output;
}
function getmenu ($parent_id)
{
//Her globaliserer vi $intTMP hvilket betyder at den kan hentes uden for denne funktion og side
global $intTMP;
//Her er vores MySQL-string hvor vi vælger efter Parent_id i databasen. Parent_id 0 er første menupunkt - dvs Index, Produkter eller Profil i vores eksempel - sorteres efter menu_order
$query = mysql_query ("SELECT * FROM vaerumshop_categories WHERE category_sub_id = '$parent_id' ORDER BY category_name ASC");
//hvis den finder nogle skal den gøre dette, dvs hvis $parent_id = 1 (altså Index) skal den ikke gøre det.
if (mysql_num_rows($query) > 0)
{
//Dette skal den så gøre ved samtlige af dem den finder i tabellen der overholder SQL-stringens WHERE-del.
//Jeg smider dette ned i et array kaldet $rs - dette kan kaldes lige hvad du vil - f.eks. $hest :)
while ($rs = mysql_fetch_array($query))
{
//Her ligger vi en til $intTMP som så efterfølgende vil rykke et mellemrum ind hvis der er nogle undermenupunkter til dette menupunkt.
$intTMP++;
//Her skriver jeg så linket ud til menupunktes destination samt funktionen getspaces hvor den sætter mellemrummet hvis dette er et undermenupunkt.
if($rs[category_sub_id] == 0){
echo '<a href="?path='.$rs[category_id].'">'.$rs[category_name].'</a><br>';
getmenu($rs[category_id]);
}elseif ($rs[category_sub_id] != 0 && $_GET['path'] == $rs[category_sub_id] || $_GET['path'] == $rs[category_id]){
echo getspaces($intTMP).'<a href="?path='.$rs[category_id].'">'.$rs[category_name].'</a><br>'." ";
getmenu($rs[category_id]);
}
//Her kalder vi så denne funktion igen med det nye parent_id altså $rs[id].
//efter alt dette skal vi huske at trække en fra $intTMP igen.
$intTMP--;
}
}
}
getmenu(0);
?>