Overview
Questo tutorial spiega come implementare un menu a discesa dinamico in Chronoforms8, dove le opzioni si aggiornano in base alle modifiche di un altro campo. Copre la configurazione di un Event Trigger, la configurazione di un Advanced Listener nel menu a discesa e la creazione di una pagina separata con uno script PHP per fornire nuove opzioni in formato JSON. Il processo garantisce che il menu a discesa si aggiorni con nuovi dati, come un elenco casuale di capitali, ogni volta che cambia il valore del campo di attivazione.
Un menu a discesa dinamico è un campo di selezione che aggiornerà le sue opzioni quando cambia un altro campo; in questo tutorial mostreremo come farlo in Chronoforms8
Innanzitutto, dobbiamo configurare un Event Trigger nel campo che attiverà il cambio delle opzioni:

Configuriamo un trigger chiamato "reloadoptions" quando il "Valore Cambia" del nostro campo
Poi, nelle impostazioni del nostro Menu a Discesa, dobbiamo configurare un Advanced Listener:

Il nome del trigger dovrebbe essere quello che abbiamo configurato prima "reloadoptions", l'Azione dovrebbe essere "Carica Opzioni" e i parametri dell'Azione sono l'alias della pagina che fornirà le nuove opzioni, nel nostro caso abbiamo una pagina chiamata "options"
Ora dobbiamo preparare la pagina "options" per ricevere la richiesta Carica Opzioni e restituire i risultati nel formato corretto:

Abbiamo aggiunto una Nuova Pagina e impostato l'alias su "options", e il Gruppo Pagina su "options", è importante cambiare il gruppo pagina in qualcosa di unico nel modulo in modo che la pagina possa essere accessibile indipendentemente.
All'interno dell'evento Load della pagina options abbiamo un'azione PHP per restituire i risultati:

Nel nostro caso abbiamo uno script PHP per restituire un elenco casuale di capitali:
$cities = [
"New York", "London", "Tokyo", "Paris", "Sydney",
"Toronto", "Berlin", "Rome", "Shanghai", "Istanbul",
"Mumbai", "São Paulo", "Mexico City", "Cape Town", "Buenos Aires",
"Moscow", "Singapore", "Los Angeles", "Bangkok", "Jakarta"
];
// Mescola l'array delle città per randomizzare l'ordine
shuffle($cities);
// Estrai 5 città casuali
$randomCities = array_slice($cities, 0, 5);
// Crea un array di coppie chiave-valore
$randomItems = [];
foreach ($randomCities as $city) {
$randomItems[] = [
'text' => $city,
'value' => $city
];
}
// Output del risultato come JSON
echo json_encode($randomItems, JSON_PRETTY_PRINT);
nota che l'elenco è codificato in Json ed è un array di array, ogni array interno è un'opzione e ha 2 chiavi, "text" per il testo dell'opzione e "value" per il valore dell'opzione
Questo è tutto, ora quando il campo di attivazione cambia (su Cambio Valore) il menu a discesa riceverà il trigger e chiamerà la pagina "options" ottenendo l'elenco aggiornato delle opzioni.

Comments: