Welcome, Guest
Username: Password: Remember me

TOPIC: Qualche idea su come gestire lunghi elenchi di opzioni?

Qualche idea su come gestire lunghi elenchi di opzioni? 1 year 7 months ago #85323

  • alexcort
  • alexcort's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 5
  • Thank you received: 1
  • Karma: 0
Ciao a tutti, avrei la necessità di fare un indagine dove il rispondente deve indicare Regione, Provincia e Comune di residenza, tutti ovviamente codificati secondo i codici ISTAT. Qualcuno di voi si è cimentato nel gestire grandi elenchi di item? Anche separandoli in 107 province (e sarebbe un bel lavoro pesante), ho sempre province con un bel numero di comuni e la ricerca con un dropdown list o con i pulsanti radio sarebbe pesante (ma sarebbero gli unici strumenti che mi restituirebbero il codice ISTAT).

Vi ringrazio in anticipo per ogni idea.
The administrator has disabled public write access.

Re: Qualche idea su come gestire lunghi elenchi di opzioni? 1 year 7 months ago #85331

  • lfanfoni
  • lfanfoni's Avatar
  • OFFLINE
  • Gold Lime
  • Posts: 265
  • Thank you received: 40
  • Karma: 11
Purtroppo non mi sembra che ci siano strumenti agevoli e comodi per gestire elenchi lunghi e gerarchici, nè mi sembra siano previsti nella 2.0
Ad ogni modo si potrebbe tentare una soluzione ibrida certamente articolata:
- accorpare l'elenco "Regioni-Province" in una domanda a scelta semplice con menu' dropdown. La gerarchia Regioni-Province si implementa mettendo i valori delle label separate da due punti (docs.limesurvey.org/Question+type+-+List...9#Category_separator). Esempio: Piemonte:Torino, Piemonte:Vercelli, e cosi' via.
In questo modo ti fai una domanda con la scelta della provincia, con selezione abbastanza agevole gerarchica sulla regione (che non puoi selezionare, ma è solo un contenitore di province)
- Definire 107 diverse domande di tipo scelta semplice, una per provincia, con l'elenco delle province, e tutte condizionate alla scelta della provincia nella domanda superiore (puoi usare l'EM).
Certamente definire 107 domande cosi' è lungo e noioso, ma puoi usare il copia/incolla di domande, oppure se sei capace, andare a definirle direttamente sul db mysql.
Forse si potrebbe fare qualcosa con i "filter-array" personalizzati, ma la vedo difficile.
Comunque questa tua domanda andrebbe tradotta in iglese e postata nel forum generale. Fammi sapere se non puoi farlo, che appena ho un attimo lo faccio io.
The administrator has disabled public write access.

Re: Qualche idea su come gestire lunghi elenchi di opzioni? 1 year 7 months ago #85334

  • alexcort
  • alexcort's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 5
  • Thank you received: 1
  • Karma: 0
Ti ringrazio innanzitutto per la celerità!
In effetti è quello che pensavo, non c'è uno strumento diretto per gestire una cosa del genere, anche se a mio giudizio ce ne sarebbe veramente bisogno. Per fare un esempio, la sola provincia di Roma, se non sbaglio, conta 121 comuni, il che crea problemi anche a livello di formattazione della pagina e/o selezione della risposta desiderata, specie se ti connetti con una Internet Key in luoghi di scarsa copertura, il che porterebbe potenziali rispondenti a interrompere l'intervista, con tutto quello che ne consegue a livello di corrispondenza con il piano di campionamento (a proposito, il meccanismo delle "quote" meriterebbe un post a parte...).
L'idea del campo di testo che funziona da filtro per l'elenco dei comuni mi era venuta proprio da questa considerazione: pensavo a qualche script che caricava dati sulla base del campo di ricerca riempito in una precedente domanda.
Sul discorso della traduzione nel forum generale... beh, il mio inglese non è abbastanza avanzato per rendere l'idea del problema: se proprio senti l'impulso irrefrenabile di farlo per me, posso garantirti la mia totale gratitudine. :)

Un saluto
The administrator has disabled public write access.

Re: Qualche idea su come gestire lunghi elenchi di opzioni? 1 year 7 months ago #85338

  • lfanfoni
  • lfanfoni's Avatar
  • OFFLINE
  • Gold Lime
  • Posts: 265
  • Thank you received: 40
  • Karma: 11
In generale credo che comunque gli 8000 comuni debbano essere "precaricati" nella pagina...e credo pure che non sarebbe un grosso problema...parliamo di informazioni di pochi byte e credo che tutte le selezioni di comuni funzionano cosi', senza fare ulteriori query in base a db.
In questo caso credo che l'onere più grosso sia il tuo, che ti devi definire 107 domande e altrettanti elenchi.
Appena posso provo a postare la domanda nel forum generale, facendo proprio l'esempio dei comuni italiani.
The administrator has disabled public write access.

Re: Qualche idea su come gestire lunghi elenchi di opzioni? 1 year 7 months ago #85347

  • lfanfoni
  • lfanfoni's Avatar
  • OFFLINE
  • Gold Lime
  • Posts: 265
  • Thank you received: 40
  • Karma: 11
Ho postato questo:
www.limesurvey.org/en/forum/can-i-do-thi...sed-of-many-elements
conviene iscriversi alle risposte avere le notifiche.
The administrator has disabled public write access.

Re: Qualche idea su come gestire lunghi elenchi di opzioni? 1 year 7 months ago #85410

  • alexcort
  • alexcort's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 5
  • Thank you received: 1
  • Karma: 0
Grazie mille.

Alessandro
The administrator has disabled public write access.

Re: Qualche idea su come gestire lunghi elenchi di opzioni? 1 year 7 months ago #85429

  • alexcort
  • alexcort's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 5
  • Thank you received: 1
  • Karma: 0
Qualcosa si può fare con iQuery e funzione autocomplete: l'articolo è http://docs.limesurvey.org/Workarounds%3A+Manipulating+a+survey+at+runtime+using+Javascript&structure=English+Instructions+for+LimeSurvey#and_later_versions, l'ho provato e mi sembra funzioni.

Non è esattamente quello che volevo: posso ottenere "in chiaro" la città, non il suo codice ISTAT, ma elaborando opportunamente il questionario posso risalire ex-post a tale codice (query SQL dove il testo è la chiave di ricerca e il codice l'output).

In particolare l'apprezzo per la semplicità lato intervistato: deve digitare inizio (o anche una parte interna) della stringa e troverà l'elenco delle occorrenze risultanti.

Dovrebbe funzionare anche con file CSV (ma non l'ho provato) come input per la casella di testo.
The administrator has disabled public write access.

Re: Qualche idea su come gestire lunghi elenchi di opzioni? 1 year 7 months ago #85551

  • lfanfoni
  • lfanfoni's Avatar
  • OFFLINE
  • Gold Lime
  • Posts: 265
  • Thank you received: 40
  • Karma: 11
si, credo che l'uso dello script autocomplete potrebbe aiutare non poco.
il workaround dovrebbe essere: docs.limesurvey.org/tiki-index.php?page=...wers_for_text_inputs

Dato che la scelta comunque sarebbe limitata ai nomi di comune che definisci, non hai problemi a trovare il codice istat ex-post, quindi a fare una elaborazione a posteriori.
Forse, ma forse, se invece di usare una domanda a testo semplice, usi una di tipo opzione semplice, manipolando opportunamente il javascript, forse si potrebbe ottenere la lista dei comuni dalle etichette delle opzioni, e magari si potrebbe memorizzare il codice etichetta, che a questo punto potrebbe coincidere con il codice ISTAT.

Per favore, facci sapere quale soluzione scegli di implementare e i motivi (anche di efficenza). E se addirittura ci posti lo script con l'elenco dei comuni italiani (o il csv), dai un bel contributo a tutti.
The administrator has disabled public write access.

Re: Qualche idea su come gestire lunghi elenchi di opzioni? 1 year 7 months ago #85596

  • alexcort
  • alexcort's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 5
  • Thank you received: 1
  • Karma: 0
lfanfoni wrote:
si, credo che l'uso dello script autocomplete potrebbe aiutare non poco.
il workaround dovrebbe essere: docs.limesurvey.org/tiki-index.php?page=...wers_for_text_inputs

Dato che la scelta comunque sarebbe limitata ai nomi di comune che definisci, non hai problemi a trovare il codice istat ex-post, quindi a fare una elaborazione a posteriori.
Forse, ma forse, se invece di usare una domanda a testo semplice, usi una di tipo opzione semplice, manipolando opportunamente il javascript, forse si potrebbe ottenere la lista dei comuni dalle etichette delle opzioni, e magari si potrebbe memorizzare il codice etichetta, che a questo punto potrebbe coincidere con il codice ISTAT.

Per favore, facci sapere quale soluzione scegli di implementare e i motivi (anche di efficenza). E se addirittura ci posti lo script con l'elenco dei comuni italiani (o il csv), dai un bel contributo a tutti.

Ok, credo di esserci. Dopo qualche prova non riuscita, sono riuscito a far leggere il CSV (che allego). Prima di tutto si fa un template (il mio l'ho copiato dal "basic" e l'ho chiamato "Residenza") e ci si scarica comuni.csv e comuni.php, poi si crea l'indagine (allego la mia "24823") e si seguono le indicazioni del workaround postato da lfanfoni.
Le uniche righe di item da cambiare riguardano var qID (in cui bisogna mettere il codice della domanda "testo breve" che si sta creando) e var url, che deve riportare il path (a partire dalla root di installavione) verso il file php (nel mio caso specifico,"upload/templates/Residenza/comuni.php") che a sua volta popola l'array dei comuni a partire da comuni.csv.
Più difficile a dirsi che a farsi. Logicamente sta creando un array con più di 8.000 voci: non aspettatevi un fulmine di guerra quando si arriva a caricare questa domanda.

Per quanto riguarda la mia esigenza (ricavare il codice ISTAT), l'ho risolta con un artificio banale: nell'inserire i comuni nel file csv ho fatto precedere il nome del comune dal suo codice ISTAT (testo da sei caratteri, tutti numerici, i primi tre sono la provincia e gli altri tre il codice comune), tanto l'autocomplete funziona uguale.
A questo punto basta inserire una ulteriore domanda (questa volta una "Equazione") che estragga con la funzione "substr()" (vedere EM) i primi 6 caratteri. E me li trovo nel mio DB senza ulteriori post-elaborazioni.
L'unico problema è che, essendo un campo di testo, posso digitare quello che voglio (invece di selezionare dall'elenco), quindi ci può scappare che qualcuno scriva "Roma", prema invio e logicamente il tutto salta...
Ringrazio tutti (anche nel forum in inglese) per le indicazioni fornite.

Un saluto
Alessandro

Allegati:

File Attachment:

File Name: comuni.csv
File Size: 197 KB
-->elenco comuni ISTAT
comuni.php -->istruzioni JS per popolare l'array

File Attachment:

File Name: limesurvey_survey_24823.lss
File Size: 26 KB
--> la mia indagine test, se qualcuno ne avesse bisogno, okkio che va comunque modificata


File Attachment:

File Name: comuni.php.txt
File Size: 0 KB
-->istruzioni JS per popolare l'array. Riallego il file con l'estensione .txt (.php non viene accettata) che va ovviamente tolta
Last Edit: 1 year 7 months ago by alexcort. Reason: Non mi ha caricato il file php.
The administrator has disabled public write access.
The following user(s) said Thank You: lfanfoni

Re: Qualche idea su come gestire lunghi elenchi di opzioni? 1 year 7 months ago #85611

  • lfanfoni
  • lfanfoni's Avatar
  • OFFLINE
  • Gold Lime
  • Posts: 265
  • Thank you received: 40
  • Karma: 11
Ringrazio Alessandro per l'ottimo lavoro di documentazione che ha fatto.
Certo che il fatto di poter inserire una voce che non sta in elenco è un grosso limite.
Ma forse qualcosina si puo' fare con qualche javascript aggiuntivo, tanto più che l'elenco delle voci è già disponibile.
Appena riemergo dal solito kaos settembrino, provo a lavorarci su.
Luciano
The administrator has disabled public write access.
Time to create page: 0.108 seconds
Donation Image