Zum Inhalt springen

Parsefehler bei Templates?


Empfohlene Beiträge

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...