Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Zahlen einzeln an Smarty übergeben? [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Zahlen einzeln an Smarty übergeben?


 
jpx10
20-03-2007, 17:55 
 
Hallo zusammen

Ich habe folgende Frage. Ich lese aus einer MySQL-DB eine Summe aus, welche ich dann per Smarty an ein html Formular übergebe.

Der Sinn des ganzen ist ein Rechnungsformular, welches direkt bedruckt werden soll. Das Rechnungsformular ist so aufgebaut, dass die oberen 2 Drittel für den normalen Schreibkram zur Verfügung stehen, während unten der Einzahlungsschein angehängt ist.

Nun möchte ich erreichen, dass die Endsumme direkt in die entsprechenden Felder des Einzahlungsscheines gedruckt werden.

Da der Einzahlungsschein für jede Zahl ein eigenes Kästchen vorgibt, möchte ich erreichen, dass mein Gesamtbetrag direkt in diese Kästchen gedruckt wird. Meine Frage nun. Gibt es eine Möglichkeit, den Endbetrag aus der Datenbank auszulesen und dann so zu formatieren, dass die jeweilige Zahl bzw. die einzelnen Ziffern per Smarty positioniert werden können?

Vielleicht kennt ja jemand einen Trick? Momentan kann ich den Gesamtbetrag nur als Ganzes übergeben. Dies sieht etwas besch.. aus.

Gruss jpx10

 
onemorenerd
20-03-2007, 20:56 
 
Original geschrieben von jpx10
Da der Einzahlungsschein für jede Zahl ein eigenes Kästchen vorgibt, möchte ich erreichen, dass mein Gesamtbetrag direkt in diese Kästchen gedruckt wird. Meine Frage nun. Gibt es eine Möglichkeit, den Endbetrag aus der Datenbank auszulesen und dann so zu formatieren, dass die jeweilige Zahl bzw. die einzelnen Ziffern per Smarty positioniert werden können?
Du hast also eine Zahl wie 1234.56 und willst sie in die 7 rechtesten Ziffernkästchen eines Einzahlungsbeleges setzen?
Nun in PHP ist jede Zahl auch String, wenn man es wünscht (notfalls durch casting) und jeder String ist ein Array von Zeichen, auf die man einzeln zugreifen kann.
Das Positionieren ist natürlich eine Sache von CSS.

In reinem PHP würde das so aussehen:
$sum = (string) 1234.56;
for ($i = 0; $i < strlen($sum); $i++) {
// $sum{$i} könnte Smarty anders interpretieren
echo '<div class="number" id="num-'.$i.'">'.$sum[$i].'</div>';
}
Smarty kennt Schleifen und Arrays, soviel weiß ich. Ob Smarty auch den Zugriff auf einzelne Zeichen via $string[pos] erlaubt, weiß ich nicht. Kannst du aber ganz schnell selbst rausfinden.

Falls ich dich mißverstanden habe und du eigentlich vorausgefüllte Inputs erzeugen willst, dann ersetze die DIVs einfach durch eben solche.

 
asp2php
20-03-2007, 21:08 
 
ich würde mit der Eigenschaft letter-spacing in CSS rum probieren, bis es passt, die Zahl in PHP soll natürlich weiterhin als Zahl bleiben

 
jpx10
20-03-2007, 22:39 
 
Herzlichen Dank euch beiden :) Das hilft mir doch schon einmal weiter!

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:04 Uhr.