smarty array auslesen ?
achim
- php
Hallo,
ich habe folgendes problem mit dem auslesen von arrays bei smarty
index.php
$smarty = new SBW_Template_1;
$ned = array();
$ned['Titel'] = "Achim";
$ned['Autor'] = "Bltmann";
$ned['Tester'] = "555ltmann";
$smarty->assign('testarray',$ned);
$smarty->display('index.tpl');
index.tpl
{>>* Smarty *<<}
{>>foreach from=$testarray item=bilderurls<<}
Hallo Herr: {>>$bilderurls.Titel<<} <br>
Hallo Herr: {>>$bilderurls.Autor<<} <br>
{>>/foreach<<}
Ausgabe:
Hallo Herr: A
Hallo Herr: A
Hallo Herr: B
Hallo Herr: B
Hallo Herr: 5
Hallo Herr: 5
Irgendwie stimmt meine schreibweise nicht:-)
Warum?
Gruss und danke
Achim
Hallo,
$ned = array();
$ned['Titel'] = "Achim";
$ned['Autor'] = "Bltmann";
$ned['Tester'] = "555ltmann";
müsste es nicht
$ned = array();
$ned[0]['Titel'] = "Achim";
$ned[0]['Autor'] = "Bltmann";
$ned[0]['Tester'] = "555ltmann";
lauten?
mfg
Twilo
Hallo Achim,
{>>foreach from=$testarray item=bilderurls<<}
damit liest du bei jedem Durchgang eines der Elemente 'Titel', 'Autor' und 'Tester' aus ...
Hallo Herr: {>>$bilderurls.Titel<<} <br>
... damit ist $bilderurls hier kein Array sondern enthälte 'Achim', 'Bltmann' bzw. '555ltmann'. Warum php den Versuch in einem String auf ein Arrayelement zuzugreifen so interpretiert, dass es das erste Zeichen ausgibt, weiß ich nicht.
Wenn du wirklich mehrere Titel übergeben willst, musst du es so machen wie Twilo es geschrieben hat (mit einem zweidimensionalem Array) und wenn du wirklich nur diesen einen Datensatz haben willst, lass die foreach-Schleife einfach weg.
Grüße aus Nürnberg
Tobias