Hawkeye Geschrieben 27. Juni 2002 Geschrieben 27. Juni 2002 Hallo zusammen, vielleicht kann mir ja hier jemand helfen. Ausgangsposition: Ich habe eine Html-Datei, in der in geschweiften Klammern Platzhalter stehen, die per PHP-Skript gefuellt werden sollen. Templates eben Ein Platzhalter wird in einem Block benutzt und sieht wie folgt aus: <!-- BEGIN block --> <td valign="top"> {Leistung} </td> <!-- END block --> [/PHP] Da soll nun eine Tabelle mit Hilfe eines PHP-Skriptes geparset werden. Mein Code sieht (was den kleinen Teil angeht) so aus: [PHP] $sql="SELECT A.leistungstext,betrag FROM leistungen AS A,beleg AS B WHERE A.leistungsnummer=B.leistungsnummer AND quittungsnummer=36"; /* hier kommt spaeter $quittungsnummer hin. Die 36 steht nur dort, um schonmal mit einem Output zu arbeiten. $quittungsnummer wird spaeter uebergeben. */ if(!$res=send_sql($db,$sql)) { echo "<br>select-statement senden: SQL-Kommando wurde nicht ausgeführt!<br>"; } $tpl->set_var(array("Leistung" => l_out($res))); $tpl->parse("out","block", true); $tpl->parse("out", "seite"); $tpl->p("out"); //*****Ausgabe der Leistungen******* function l_out($res) { global $db; $runlevel=1; echo "<table>"; echo "<tr>"; while($row=mysql_fetch_array($res,MYSQL_ASSOC)) { foreach($row as $elem) { switch($runlevel) { case 1: echo "<td valign=\"top\" align=\"left\">$elem:</td>"; $runlevel++; break; case 2: echo "<td valign=\"top\" align=\"right\">$elem</td>"; $runlevel=1; break; } } echo "</tr>"; } echo "</table>"; } ?> Der zweite parse ist fuer nicht in dem Block enthaltene Templates gesetzt, die weiter oben im Code sind und jetzt der Uebersicht halber nicht von mir hier mit reinkopiert wurden. Mir stellt sich jetzt folgende Frage: Wenn ich den Code so belasse, wie er jetzt ist, schreibt er die Leistungen nicht da hin, wo der Platzhalter "Leistung" ist, sondern ganz am Anfang des HTML-Dokumentes. Schreibe ich jetzt aber: $tpl->set_var(array("Leistung" => "Test")); $tpl->parse("out","block", true); [/php] ...oder ich schreib direkt eine Tabelle mit den Tags in der set_var-Zeile, [b]dann[/b] schreibt er mir "Test" oder die Tabelle auch dahin, wo ich den Block und den Platzhalter im HTML-Dokument gesetzt habe. Was mache ich falsch? Es muss dann wohl irgendwie an der l_out liegen, da das parsen an sich ja wohl zu funktionieren scheint, wenn ich {Leistung} mit anderem Inhalt, als mit der Funktion fuellen will. Aber ich wuesste nicht, was da jetzt so falsch ist. Zitieren
Hawkeye Geschrieben 27. Juni 2002 Autor Geschrieben 27. Juni 2002 Hat sich erledigt. Musste den Output in der Funktion in eine Variable schreiben - statt ueber echo zu gehen - und die returnieren. Dann konnte die $tpl->set_var-Anweisung auch was damit anfangen. Ich hasse dumme Fehler Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.