Content Type- Aggiornamento campo
Pongo la stessa domanda posta per la WebForm, vorrei aggiornare un campo con il dato di un altro campo. Mi sono fatto printare le variabili tramite kint e tenendo presente la granularità del percorso da indicare ho scritto il codice seguente
WebForm $form['elements']['riq_data']['data_missione']['#attributes']['onchange'] = 'this.form.data_di_rientro.value = this.value'; Content Type $form['data_missione']['widget']['0']['#attributes']['onchange'] = "alert('OK')";
Ma non funziona, ho controllato ma non riesco a capire cosa ometto
Gaetano
Risposte
Considera sempre che non
Considera sempre che non tutti i widget hanno uguale struttura. Alcuni hanno l'elemento "value" (es: textfield) altri il "target_id" (es: entity reference) etc....
Guarda bene con kint espandendo gli elementi per farti un'idea.
Ho approfondito con Kint ed
Ho approfondito con Kint ed ho capito dov'è la differenza.
Non sta nella capillarizzazione bensì nel nome del campo. title e body essendo campi interni li usa in tale maniera.
Invece per tutti i campi che si aggiungono al C.T. c'è la necessità di aggiungere field_
Modificato il codice e funziona
Ottimo, sarebbe molto utile
Ottimo, sarebbe molto utile se tu potessi postare un esempio completo funzionante come riferimento per altre persone.
Con piacere, so cosa
Con piacere, so cosa significa sbattere la testa senza capire il perché dell'errore
Ma non so se sono all'altezza del compito.
Inizio a scrivere qualcosa e se hai il tempo di darci un'occhiata per migliorarlo e renderlo più chiaro è meglio
Come consigliato da Maurizio
Come consigliato da Maurizio posto una piccola spiegazione della mia esperienza sperando sia chiara e che possa essere di aiuto ad altri
In form alter quando c’è la necessità di personalizzare il valore o i parametri di un campo, fare attenzione se si usa il campo title o body che drupal crea in automatico appena si crea un nuovo content type.
Gli esempi sono quasi sempre sui campi title e body e per similitudine si è portati a pensare che il campo che è stato inserito, in aggiungi campo, abbia la stessa caratteristica.
Mi spiego, aggiungo un nuovo campo chiamato anagrafica quando vado a richiamarlo per controlli o altro non devo scrivere $form[‘anagrafica’] così come si fa per title $form[‘title’], bensì il nome del campo completo, $form[‘field_anagrafica’][widget][0].... proseguendo con le proprietà che servono
Da non dimenticare che Kint visualizza l’array in ordine alfabetico. Questo è stato un altro errore che ho commesso