Come gestire l'opzione "Altro" in un elenco di opzioni?

0

Questo è quasi ovunque. Ad esempio, ho bisogno di scegliere un frutto da un elenco di frutti da un menu a discesa. E l'ultima opzione su quel menu a discesa è "Altro", selezionando che viene visualizzato un altro campo di testo per consentire agli utenti di digitare il loro cibo preferito.

Supponendo che tutti i dati provengano dal database, quale sarebbe il modo migliore per implementarlo sul front-end?

In questo momento, quello che posso pensare è di dare all'opzione "Altro" un ID speciale nel database e di verificarlo nell'interfaccia utente. Il che significa salvare l'ID del database nel mio codice di front-end.

L'altra opzione è solo la ricerca del testo "Altro". Che sembra anche brutto.

C'è un approccio migliore a questo problema?

    
posta SZT 18.06.2018 - 09:28
fonte

1 risposta

1

Il controllo di "Altro" funzionerà bene ... fino a quando non decidi di volerlo esprimere diversamente o se vuoi supportare una lingua diversa dall'inglese. È una soluzione fragile: è veloce e facile da implementare ma si romperà troppo facilmente.

Allo stesso modo, memorizzare un ID nell'interfaccia utente è abbastanza facile. Ma accoppia l'interfaccia utente a un insieme specifico di dati. Abbandonare casualmente quel record dal database e ricrearlo e si potrebbe finire con un ID diverso. E ogni volta che aggiungi un nuovo menu a discesa, questo è un altro ID che unisce i due. È un po 'meno fragile, ma è ancora fragile e inizia a trasformare il tuo codice in spaghetti.

Una soluzione più affidabile implica semplicemente il disaccoppiamento del caso speciale "altro" da quei campi esistenti. Il modo più semplice per farlo è aggiungere un nuovo campo booleano a quelle tabelle che denotano se un record specifico è il caso speciale o meno. Questo è semplice, ma rischia il fatto che più di un campo venga contrassegnato come "altro". Un'altra soluzione è avere una tabella "Altri" che registra l'ID caso speciale per una tabella specifica. Quella tabella può quindi essere caricata nell'app all'avvio. Fa lo stesso di codifica hard di quegli ID speciali nell'app, ma evita la necessità di ri-rilasciare il codice se un ID cambia.

    
risposta data 18.06.2018 - 09:56
fonte

Leggi altre domande sui tag