Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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.

Geschrieben

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 :(

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...