foreach --> Templateausgabe

low-group

Erfahrenes Mitglied
hi,

Ich habe ein Script, wo die Ausgabe direct in der php drinne ist in einer foreach-Schleife. Wenn ich dies normal aufrufe, werden mir mehrere Sachen untereinander angezeigt, wenn ich dies aber über Template ausgeben lassen will, wird immer nur eins angezeigt. Woran liegt das?

hier der orginalcode:

PHP:
 <table width="100%" border="0" cellspacing="5" cellpadding="0"> <?

foreach ($items as $i)
{
?>
<tr>
<td align="center" valign="top" rowspan="3"><a href="<? echo $i['Url'];?>">
<img border="0" src=<? echo $i['ImageUrlSmall']; ?>></a></td>
<td>
<font size="-1"><b>
<? echo $i['ProductName']; ?></b> / <? echo
implode(", ", $i['Authors']); ?></font></td> </tr>
 <tr> <td align="left" valign="top">
<font size="-1">List Price: <? echo $i['ListPrice']; ?> /  Price: <? echo $i['OurPrice']; ?></font>
</td> </tr> <tr> 
 </tr> <tr>
<td colspan=2>&nbsp;</td> </tr> <? } ?> </table>

und so wollte ich dies über Template ausgeben lassen:

PHP:
 foreach ($items as $i)
{
$url = $i['Url'];
$img = $i['ImageUrlMedium'];
$prod = $i['ProductName'];
$aut = implode(", ", $i['Authors']);
$lpreis = $i['ListPrice'];
$apreis = $i['OurPrice'];

eval ("\$shopbit = \"".$tpl->get("shop-bit")."\";");
}

Wo ist der fehler?
 
Man kann anhand Deines Codes nicht erkennen, wie Deine Template-Engine funktioniert, bzw. in welcher Art und Weise diese die Daten erwartet.

snuu
 
Hier ist vermutlich dein Fehler:
PHP:
eval ("\$shopbit = \"".$tpl->get("shop-bit")."\";");
Eigentlich soll deine Funktion alle Texte bzw. Contents die angezeigt werden in der Variable $shopbit gespeichert werden. Leider kann dies so nicht funktionieren, da bei jeden erneuten Schleifendurchlauf die Variable überschrieben wird.

Du musst den neuen Content an die alte Variable dran hängen:

PHP:
eval ("\$shopbit. = \"".$tpl->get("shop-bit")."\";");

In diesem Sinne
 
Zurück