Menu3 statisch

Door Lissy Pixel, 22 jaar geleden, 3.218x bekeken

Een statisch menu die je uit de database haalt.
Het menu klapt dus niet in.
Uiteraard was dit niet gerealiseerd wanneer jullie mij hier van PHPhulp niet hadden geholpen en jullie inmense geduld :-)

@ All ===> BEDANKT!!

Hier de tabellen:

CREATE TABLE `Menu` (
`ID` bigint(3) NOT NULL auto_increment,
`MenuNaam` varchar(150) NOT NULL default '',
PRIMARY KEY (`ID`)
) TYPE=MyISAM AUTO_INCREMENT=4 ;


CREATE TABLE `MenuLinks` (
`ID` bigint(3) NOT NULL auto_increment,
`Menu` varchar(150) NOT NULL default '',
`LinkNaam` varchar(150) NOT NULL default '',
`Url` varchar(150) NOT NULL default '',
`Target` varchar(50) NOT NULL default 'main',
PRIMARY KEY (`ID`)
) TYPE=MyISAM AUTO_INCREMENT=19 ;

Gesponsorde koppelingen

PHP script bestanden

  1. menu3-statisch

 

Er zijn 9 reacties op 'Php algemeen'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Han eev
Han eev
22 jaar geleden
 
0 +1 -0 -1
Best wel weer leuk...
Maar kan je niet beter het gewone script updaten.
En kan je dit niet beter met JS doen?? :$
Lissy Pixel
Lissy Pixel
22 jaar geleden
 
0 +1 -0 -1
Nee want zo blijft er mijnsinziens overzicht voor met name de niet geoefende PHP'er die een script zoekt in wat je wenst of juist niet wenst namelijk:

menu zonder database
menu2 dynamisch
menu3 statisch

Overigens wat bedoel je met zo kan ik ook scripts krijgen?
Iedereen kan toch posten en scripten maken?
Han eev
Han eev
22 jaar geleden
 
0 +1 -0 -1
Nouw kijk, je post 3x ongeveer het zelfde script. maar met jouw uitleg snap ik het =)
Lissy Pixel
Lissy Pixel
22 jaar geleden
 
0 +1 -0 -1
weetje Han ik zal de namen van de scripten aanpassen :-))
Han eev
Han eev
22 jaar geleden
 
0 +1 -0 -1
Oke, =)
Het is wel een mooi script (na wat testen ;))
Robert Deiman
Robert Deiman
22 jaar geleden
 
0 +1 -0 -1
Het is inderdaad wel een mooi script. Is mooi te gebruiken voor diegenen die aan een cms werken.
Nog wel een klein puntje Lissy, omdat die statisch is is het misschien ook wel leuk om de link bij de afbeeldingen (min.gif) weg te halen. Die heeft geen functie meer in dit voorbeeld ;)
EdwinG
EdwinG
22 jaar geleden
 
0 +1 -0 -1
Klein puntje:
Kun je $open = explode(',', $menuids); niet gewoon weglaten als je
$menuids .= $data['ID'] . ",";
Vervangt door
$open[] = $data['ID'];

Waarom staat
if (!empty($menu)) {
$open = explode(',', $menu);
$total_open = count($open);
} else {
//$open = array();
$open = explode(',', $menuids);
}
Eigenlijk binnen de for-lus? De waarden $menu en $menuids veranderen toch niet binnen die lus?
(en daarmee $open en $total_open ook niet)

Waarvoor dient $total_open eigenlijk? ik zie er geen gebruik van.
Lissy Pixel
Lissy Pixel
22 jaar geleden
 
0 +1 -0 -1
Jep klopt!
Hoe wordt volgens jou de totale code dan??
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
EdwinG
EdwinG
22 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
  error_reporting(E_ALL);
  //hier worden de menu's gemaakt
  $query = "SELECT ID, MenuNaam FROM Menu";
  $sql = mysql_query($query) or trigger_error(mysql_error());
  
  $total_menu = 0;
  $menuids = "";
  while ($data = mysql_fetch_array($sql))
  {

    // voor later gebruik :)
    $open[] = $data['ID'];
    $menunaam[] = $data['MenuNaam'];
    $total_menu++;
  }


  // hier kijken of de GET variabele gezet is
  // eventueel kun je hier nog een controle
  // inbouwen of het om een geldige waarde gaat

  if (isset($_GET['menu']))
  {

    $menu = $_GET['menu'];
  }
else
  {
    $menu = '';
  }


  //de plaatjes 10*10 pixels
  $img_min = '<img src="../images/min.gif" border="0" alt="">';
  $img_plus = '<img src="../images/plus.gif" border="0" alt="">';
  $img_blank = '<img src="../images/blank.gif" width="10" height="10" border="0" alt="">';

    //is er een menu opengeklapt zoja welken en zet het in een array
    if (!empty($menu)) {
      $open = explode(',', $menu);
    }

  
  // hier maken we een loop voor de menu's
  for ($i = 0; $i < $total_menu; $i++) {
    $num = $i + 1;
    
    //kijkt of de menu open geklapt moet worden ja of nee
    if (in_array($num, $open)) {
      $remove_menu = str_replace($num . ',', '', $menu);
      echo '<a href="?Menu=' . $remove_menu . '">' . $img_min . '</a>' . $menunaam[$i] . "\n";
      $query2 = "SELECT LinkNaam, Url, Target FROM MenuLinks WHERE Menu=$num";

      $sql2 = mysql_query($query2);
      // de items voor de links uitlezen en de menu uitgeklapt weergeven
      while ($data2 = mysql_fetch_array($sql2)) {
        $linknaam = $data2['LinkNaam'];
        $Url = $data2['Url'];
        $Target = $data2['Target'];
        echo '<br>' . $img_blank . '<a href="' . $Url . '" target="' . $Target . '">' . $linknaam . '</a>' . "\n";
      }

      echo '<br><br>' . "\n";
    }
else {
      // de url maken
      if (empty($menu)) {
        $Url = '?Menu=' . $num . ',';
      }
else {
        $Url = '?' . $_SERVER['QUERY_STRING'] . $num . ',';
      }

      echo '<a href="' . $Url . '">' . $img_plus . '</a>' . $menunaam[$i] . '<br>' . "\n";
    }
  }

?>


Overigens heb ik het idee dat
$remove_menu = str_replace($num . ',', '', $menu);
ook anders zou moeten/kunnen. (wat als $menu leeg is?) Je gaat immers uit van $open, maar die is niet altijd ingesteld aan de hand van $menu.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. menu3-statisch

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.