Ciao,
tramite form API sono riuscito a costruire un form (form, validate, submit) per l'inserimento di un nuovo record su database.
Quello che non riesco a fare è gestire con lo stesso form l'update di un record esistente presentando all'utente il form già precompilato con i valori del record.
In sostanza ritorno la form con:
drupal_get_form ('gestione_record_form')
La struttura della form è definita quindi nella:
function gestione_record_form()
Mi sembrava si potesse usare la proprietà #default_value per impostare i valori dei campi del form con i valori del record da modificare ma non capisco come passarli alla funzione....ammesso che questo sia il metodo corretto per fare l'update!
Qualcuno mi sa aiutare? Grazie
A
Ciao, nella funzione gestione_record_form che accetta 2 valori ($form e $fs) controlla che $fs['values'] sia vuoto. Se è vuoto allora devi prendere i valori dal DB altrimenti devi prendere i valori da $fs['values'].
M.
--
Michel 'ZioBudda' Morelli -- [email protected]
Sviluppo applicazioni CMS DRUPAL e web dinamiche -- Corsi Drupal -- Amministrazione Drupal -- Hosting Drupal
Grazie Michel!!!!, non credo di aver capito :-(
Spiego meglio il problema:
Chiamando la "/record/nuovo" vorrei che si presentasse all'utente il form vuoto per inserire un nuovo record sul DB. Al submit del form viene eseguita una insert.
Chiamando invece ad esempio la "/record/modifica/34" vorrei che si presentasse all'utente un form che permette la modifica del record con chiave 34 quindi con i campi già popolati con quelli del record in esame. Al submit del form viene eseguita una update.
Nessun problema a costruire le voci di menu e gestire il processo di creazione del form , validazione e submit del form ma solo in caso di insert di un nuovo record. Nel caso di update di record esistente no so come procedere.
Ciao, A
Riporto qualche stralcio di codice:
$items['record/nuovo'] = array(
'title' => t('Inserimento nuovo record'),
'page callback' => '_database_gestione_record',
'page arguments' => array('insert'), .................
$items['record/modifica/%'] = array(
'title' => t('Modifica record'),
'page callback' => '_database_gestione_record',
'page arguments' => array('edit'), ...........
function _database_gestione_record($action='', $record ='') {
if ($action == 'insert') {
return drupal_get_form('gestione_record_form');
}
else if ($action == 'edit') {
//DA COSTRUIRE
......................
function gestione_record_form() {
// campi del form
$form['articolo'] = array(
'#title' => t('Articolo'),
'#type' => 'textfield',
'#description' => t('Inserire la descrizione dell'articolo'),
'#required' => TRUE,
'#maxlength' => 20,
.........