Hallo !
Ich versuche gerade , mir ein dynamisches Formular zusammen zubasteln,das ich mir per smarty anzeigen lassen will.
Das Formular wie folgt erzeugt:
Code:
$allAreaRights=getAllAreaRights($areaID);
for ($i=0;$i<count($allAreaRights['right_id']);$i++){
$form->addElement('checkbox', 'right_'.$allAreaRights['right_id'][$i], $allAreaRights['right_define_name'][$i]);
}
$form->addElement('submit','btnsubmit',FORM_SUBMIT);
$rendererDaten =& new HTML_QuickForm_Renderer_ArraySmarty($tmpl);
$form->accept($rendererDaten);
$tmpl->assign('AREARIGHTS',$allAreaRights);
$tmpl->assign('formular_rights', $rendererDaten->toArray());
$tmpl->display('frmAllGroups.tpl');
}
Jetzt wird ich gerne die einzelnen Formularelemente anzeigen lassen, in dem ich das Array allAreaRights[] durchlaufe und aus den Daten die Elementnamen wieder zusammenbastel.
Mein Ansatz sieht wie folgt aus:
Code:
<form {$formular_rights.attributes}>
<fieldset>
<h3>{$HEADLINE_RIGHT}</h3>
<table>
<tr><td>{$formular_rights.area_1.label}</td><td>{$formular_rights.area_1.html}</tr>
{section name=i loop=$AREARIGHTS.right_id|count}
<tr><td> </td><td> </td></tr>
<tr><td>{$formular_rights.right_{$AREARIGHTS.right_id[i]}.label}</td><td>$formular_rights.right_{$AREARIGHTS.right_id[i]}.html</tr>
{/section}
<tr><td> </td><td>{$formular_rights.btnsubmit.html}</td></tr>
</table>
</fieldset>
</form>
Leider klappt das nicht, ich kann die den Namen für das label bzw Html-element nicht dynamisch zusammensetzen
(siehe : {$formular_rights.right_{$AREARIGHTS.right_id[i]}.label} )
Gibt es noch einen anderen Weg, die Elemente ohne "section .. loop" schleife zu durchlaufen bzw
Bisherige Fehlermeldung:
Code:
Fatal error: Smarty error: [in frmAllGroups.tpl line 34]: syntax error: unrecognized tag: $formular_rights.right_{$AREARIGHTS.right_id[i] (Smarty_Compiler.class.php, line 446) in /libs/smarty/Smarty.class.php on line 1094
Kann wer helfen ? vielleicht sollte ich auch einfach Schluss machen (kommen eh gleich die Simpsons

)