Salve a tutti! E' da qualche giorno che sto provando a capire come funziona un plugin per validare i form. E' fatto con jQuery e si chiama jFormer.

Non è difficile da capire e infatti con i campi base funzionano le prove che ho fatto.
Il problema è che io ora dovrei effettuare questa operazione:

1) ho un file xml contenente persone con questa struttura:

<persona id='1'>
<nome></nome>
<cognome></cognome>
</persona>

2) devo creare un menu drop down con all'interno il nome e il cognome e quando viene selezionata una entry di questo menu, viene preso l'id.

Prima di imbattermi in jQuery, io utilizzavo un foreach per scorrermi il file xml utilizzando simple load xml. Questo foreach lo inserivo in una funzione che veniva chiamata all'interno del della select presente nel form.

<?
function creaPerone()
{
foreach($persone ad $p)

echo "<option value='$p['id']'>$p->nome.' '.$p->cognome</input>";
}


<form>
<select>
<?
creapersone()
?>
</select>
</form>


Sommariamente il codice è questo. L'ho scritto ora e non ricopiato. In ogni caso è molto semplice come potete vedere e funziona.

Ora con Jformer, per validare il form dovrei stravolgere tutto! Jformer utilizza, per i menu dropDown questa forma:


$dropDown = new JFormComponentDropDown('id', 'Label:',
array(
array(
'value' => '',
'label' => ' - Select an Option - ',
'disabled' => true,
'selected' => true
),
array(
'value' => 'option1',
'label' => 'Option 1'
),
array(
'value' => 'option2',
'label' => 'Option 2'
),
),
array(
'tip' => '

This is a tooltip on a drop down component.</p>',
)
);


Quindi utilizza un array con all'interno altri array. Ogni sotto array identificherebbe una persona.

Poichè il file xml è molto grande e viene aggiornato di continuo, avrei bisogno di creare la struttura dell'oggetto $dropDown in maniera dinamica. Quindi ogni volta che viene caricata la pagina, legge il file xml e crea il dropdown menu.

Ho provato a generare gli array direttamente con foreach, ma non sono riuscito a farlo funzionare.

Qualcuno sa come potrei risolvere questo problema? E' da due giorni che ci sbatto la testa!