Variable in Smartyvariable ersetzen

ne0hype

Erfahrenes Mitglied
Hallo Community,

ich hab folgendes Problem.

Ich habe ein Template in dem einige Input-Felder sind. z.b.

<input type="text" name="{$part}strasse" id="{$part}strasse" />

da ich das Template mehrmals einbinde, habe ich mir eine {$part} - Variable gemacht die einmal den Wert: "pers1_" und "pers2_" annimmt. Somit erhalte ich im fertigen HTML 2 Zustände die auf der selben Seite auftauchen:

<input type="text" name="pers1_strasse" id="pers1_strasse" />

<input type="text" name="pers2_strasse" id="pers2_strasse" />


So nun zum eigentlichen Porblem:
Ich will nun die Value nach dem abschicken mit {$smarty.post.pers1_stasse} holen. Da dachte ich mir

{$smarty.post.{$part}strasse}

aber das geht nicht. Wie bekomme ich nun hin das ich eine Variabele in einer anderen Variable ersetze?

Bin für jede Hilfe Dankbar.
 
Warum nutzt du nicht dafür nicht einen Array?

PHP:
<?php
echo '<pre>'.print_r($_POST, true).'</pre>';
?>
<form action="" method="post">
<input type="text" name="person[][strasse]">
<input type="text" name="person[][strasse">
<input type="submit">
</form>

Das ergibt:
PHP:
Array
(
    [person] => Array
        (
            [0] => Array
                (
                    [strasse] => 123
                )
            [1] => Array
                (
                    [strasse] => 345
                )
        )
)
 
Und wie greife ich dann mit Smarty auf die GET zu

{$smarty.get.person[]strasse}?

Geht ja nicht .. woher soll Smarty wissen welches Array Element ich denn will.
 
Warum soll die Templateengine deine Variablen verarbeiten, wenn PHP dafür zuständig ist?
Was ist wenn jemand das merkt und dir auf diese Weise Code unterschmuggelt? PHP sollte die Daten verarbeiten und auch validieren, bevor sie an die Templateengine übergeben werden.
 
Zurück