form_set_value

10 contenuti / 0 new
Ultimo contenuto
form_set_value

In Drupal 6 ho un form creato con un modulo.
-Come primo elemento ho un elenco di scelte (select);
-quando scelgo un elemento con un po' di javascript faccio il submit del form;
-vorrei fare in modo che gli x campi del form vuoti sottostanti all'elenco si autoriempissero con una serie di info (che prendero' da un db esterno, ma ora mi basterebbe una serie di variabili :( ) in base alla scelta fatta.

NON CE LA FACCIO!!!

Sto impazzendo con form_set_value nella funzione _validate.
Ma e' giusto?
O devo usare il rebuilding ()?

Sul libro "Pro Drupal Development" a pagina 242 c'e' : "Using form_set_value() to Pass Data" ma si parla di accesso del valore nella submit function.... MA IO NON ARRIVO LI... Vorrei reimpostare il form con detterminati valori.

Che fare?

La funzione _validate viene eseguita dopo il submit.

e quindi... e' giusto usare form_set_value?

Allora, all'avvio, presumibilmente, la tua select non avrà alcun valore, nel post del tuo form (in pratica alla chiamata della funzione di submit) intercetti il valore della select, da li prelevi i dati che ti interessano e generi il form, inserendo nei campi che vuoi il valore che hai prelevato (#default_value degli elementi del form).

Ciao
Marco
--
My blog
Working at @agavee

Grazie Mavimo...
Il form lo considero valido se esiste un dato nella select in questione ...OK... ma per generare il form... come faccio? :(
Dove devo risettare il valore di default?
Scusa ma ho davanti il workflow delle FAPI e inizia a farmi male la testa :(

Pinolo, guardando le FAPI qui non mi sembra... sbaglio?

nel form tu crei gli elementi che ti servono, quindi, per esempio:

<?php
$form
['mia_select'] = array(
 
'#type' => 'select',
 
//...
);
if(
/*vedi tu */) {
 
$val = '';
} else {
 
$val = 'miovalore';
}
$form['mio_campo'] = array(
 
'#type' => 'textfield',
 
//...
 
'#default_value' => $val;
);
?>

in questo modo scegli cosa deve comparire nel tuo form :D

Ciao
Marco
--
My blog
Working at @agavee

ah.. ok...
Grazie mille!!!! Ora provo...
pero' ho una domanda: la funzione form_set_value non dovrebbe servire a quello che voglio arrivare a fare?
O dove si usa?

mavimo wrote:
nel form tu crei gli elementi che ti servono, quindi, per esempio:
<?php
$form
['mia_select'] = array(
 
'#type' => 'select',
 
//...
);
if(
/*vedi tu */) {
 
$val = '';
} else {
 
$val = 'miovalore';
}
$form['mio_campo'] = array(
 
'#type' => 'textfield',
 
//...
 
'#default_value' => $val;
);
?>

in questo modo scegli cosa deve comparire nel tuo form :D

Grazie mille Mavimo, funziona MOLTO BENE!!!

Ho sbagliato a scrivere. Volevo dire che _validate viene eseguita dopo il POST quindi non puoi cambiare al volo il form se metti lì form_set_value.