Quickform & Smarty

Salve a tutti,

sono in panne per un semplice modulo per la gestione delle lingue. In sintesi devo realizzare un gruppo di elementi checkbox inseriti in un ciclo for.

for($i=0;$i<count($arrLangs);$i++){
  $form->addElement('checkbox', 'lingua', "",$title, "");
}

non so come recuperare questi elementi all'interno di un template gestito da smarty.

grazie

ulisse

inviato 10 anni fa
ulisse
X 0 X

Non ho mai provato a lavorare con Quickform e Smarty, ti posso solo consigliare dei link che trattano l'argomento:

questa è una interessante presentazione:

http://davidmintz.org/presentations/show.php/QuickForm_and_Smarty/1

qui invece trovi degli esempi:

http://www.phcomp.co.uk/TechTutorial/QfSmarty/index.php

Spero possano esserti d'aiuto.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Grazie ma conoscevo già i siti web che mi hai fornito.

Cercherò altrove.

risposto 10 anni fa
ulisse
X 0 X

Ciao Ulisse.

Gli elementi all'interno del template di smarty sono recuperabili in questo modo:

innanzitutto prova a scrivere all'inizio del template

{debug}

ed avrai la lista di variabili assegnate.

supponiamo che nel tuo php hai creato il form, poi lo hai assegnato a smarty in questa maniera:

<?php
//....codice pre creare qform
// 
//
$form->accept($renderer);
$smarty->assign('form_data', $renderer->toArray(True) );
//....
//....
?>

Quindi avrai nel template la variabile form_data

Ci accedi in questa maniera:

{$form_data.hidden}

sono i campi hidden

{$form_data.frozen}

i freezati

{foreach from=$form_data item=form_item key=key}
.......
.....
{/foreach}

con {$key} (spero di non sbagliarmi  ::) ) puoi verificare il nome dell'elemento.

In caso tu abbia altri dubbi, la cosa piu semplice è fare un bel <?php print_r($renderer->toArray(True) ); ?>

cosi vedi esattamente come vengono passati a smarty i valori e come accederci, sono semplici array o oggetti

Ciao

risposto 10 anni fa
Thesee
X 0 X

Grazie tante dell'aiuto.

risposto 10 anni fa
ulisse
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda