Foutje met template parser, menu wil niet parsen
Robin C
24/07/2010 12:13:38Hi,
Ik ben momenteel bezig met een cms dat gebruik maakt van een template parser.
Normaal kom ik eruit, dan moet ik dit doen voor het menu
Maar nu moet ik het menu zo parsen:
Het probleem hierbij is dat die alleen het laatste menu item weergeeft ipv ze allemaal.
Weten jullie hier een oplossing voor?
Alvast bedankt,
Robin
Ik ben momenteel bezig met een cms dat gebruik maakt van een template parser.
Normaal kom ik eruit, dan moet ik dit doen voor het menu
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$sql = mysql_query("SELECT * FROM menu Order by id");
while($show = mysql_fetch_object($sql)) {
$menunaam = htmlspecialchars($show->naam);
$menulink = htmlspecialchars($show->link);
echo "<li><a href='".$menulink."'>".$menunaam."</a></li>";
}
?>
$sql = mysql_query("SELECT * FROM menu Order by id");
while($show = mysql_fetch_object($sql)) {
$menunaam = htmlspecialchars($show->naam);
$menulink = htmlspecialchars($show->link);
echo "<li><a href='".$menulink."'>".$menunaam."</a></li>";
}
?>
Maar nu moet ik het menu zo parsen:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$sql = mysql_query("SELECT * FROM menu Order by id");
while($show = mysql_fetch_object($sql)) {
$menunaam = htmlspecialchars($show->naam);
$menulink = htmlspecialchars($show->link);
$parse->assign("menu", "<li><a href='".$menulink."'>".$menunaam."</a></li>"); //naam van blok zonder [ of ] + inhoud
}
?>
$sql = mysql_query("SELECT * FROM menu Order by id");
while($show = mysql_fetch_object($sql)) {
$menunaam = htmlspecialchars($show->naam);
$menulink = htmlspecialchars($show->link);
$parse->assign("menu", "<li><a href='".$menulink."'>".$menunaam."</a></li>"); //naam van blok zonder [ of ] + inhoud
}
?>
Het probleem hierbij is dat die alleen het laatste menu item weergeeft ipv ze allemaal.
Weten jullie hier een oplossing voor?
Alvast bedankt,
Robin
PHP hulp
13/01/2025 03:06:25Joren de Wit
24/07/2010 12:28:24Je overschrijft telkens de template variabele 'menu' die je op regel 8 van het tweede stukje toekent.
Wat je zou kunnen doen is eerst alle items in een array zetten, vervolgens deze array toekennen aan de template en binnen de template deze array gebruiken om de items weer te geven.
Wat je zou kunnen doen is eerst alle items in een array zetten, vervolgens deze array toekennen aan de template en binnen de template deze array gebruiken om de items weer te geven.
Robin C
24/07/2010 12:59:49Joren de Wit
24/07/2010 13:09:35Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$menu = array();
while($row = mysql_fetch_assoc($sql)) {
$menu[] = array('naam' => $row['naam'], 'link' => $row['link']);
}
$parse->assign('menu_array', $menu);
?>
$menu = array();
while($row = mysql_fetch_assoc($sql)) {
$menu[] = array('naam' => $row['naam'], 'link' => $row['link']);
}
$parse->assign('menu_array', $menu);
?>
En dan in je template de variabele 'menu_array' uitlezen. Het hangt af van de template parser die je gebruikt, hoe je dat kunt doen. Maar je zult op een of andere manier met een loop die array moeten uitlezen en alle items weer moeten geven.