Caricamento Regioni-Province per la Versione 3.3.1+180214 su due dropdown

Mehr
2 Jahre 1 Monat her - 2 Jahre 1 Monat her #164288 von oreslas
In allegato il gruppo di domande con il funzionamento descritto in oggetto.
IMPORTANTE: modificare sempre i parametri ID con quelli della vostra indagine.

Di seguito una sorta di guida per consentirvi di usarlo anche con altri valori


Cosa fa lo sciprt: Tale script consente, una volta scelto un valore da una prima dropdownlist (ddl1), di filtrare i valori presenti in una seconda dropdownlist (ddl2) in base a quanto scelto nella ddl1;

1. Lo script va inserito nel campo DDL primario (ddl1)
2. I paramentri da passare nella funzione sono ({IDdellaDDL1},{IDdellaDDL2},numeri di caratteri da togliere nei valori della DDL2 per fare il confronto con il valore della DDL1)
3. Es. se la mia DDL1 è id=10 e la DDL2 è id=14 mettiamo al posto di IDdellaDDL1 il valore 10 (primo parametro della funzione) e al posto di IDdellaDDL2 il valore 14 (secondo parametro della funzione)
4. per quanto riguarda il numero di caratteri da togliere nei valori della ddl2 per fare il confronto cerco di spiegarvelo con un esempio:
Se nella ddl1 ho i valori A,B,C,...N e nella ddl2 i valori A1,A2,B1,B2,C1,C2,...N1,N2 il confronto per la funzione è quando viene trovata la lettera A o la B o la C o la N quindi il numero di caratteri da togliere per il confronto sarà solamente 1 e quindi metterò 1 come terzo paramentro da passare alla funzione (perche A1- un carattere = A.
Se invece nella ddl1 ho i valori AAA,BBB,CCC,...NNN e nella ddl2 i valori AAA111,AAA222,BBB111,BBB222,CCC111,CCC222,....NNN111,NNN222 il confronto lo dovremo fare con le lettere AAA o BBB o CCC o NNN quindi il caratteri da togliere per il confronto saranno in questo caso 3 e quindi metterò 3 come terzo parametro (perce AAA111-tre caratteri = AAA.

IMPORTANTISSIMO: lo script funziona SOLAMENTE SE le due DDL vengono mostrate in uno stesso gruppo di domande e se, quindi, l'indagine viene visualizzata con un gruppo di domande per pagina
Anhänge:
Letzte Änderung: 2 Jahre 1 Monat her von oreslas.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

LimeSurvey Partners
Mehr
2 Jahre 1 Monat her #164292 von Frasca
Grazie mille ma non riesco ad aprire e quindi anche importare il file perchè è in formato .lsg

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
2 Jahre 1 Monat her #164295 von oreslas
Ciao frasca,
il file .lsg è un gruppo di domande, quindi dovresti, in una indagine, creare un gruppo di domande e da li importare questo file.
Mi raccomando, una volta importato il gruppo di domande, vedri che LS assegna alla ddl1 ed alla ddl1 un id che sarà ovviamente diverso da quello che trovi nello script presente nella ddl1. Prima di eseguire e provare il tutto modifica l'id con quelli tuoi.
Folgende Benutzer bedankten sich: Frasca

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
2 Jahre 1 Monat her #164323 von Frasca
Buongiorno, sto apportando le modifiche che mi hai gentilmente spiegato ieri ma sul punto numero 4 mi sono bloccato:
"4. per quanto riguarda il numero di caratteri da togliere nei valori della ddl2 per fare il confronto cerco di spiegarvelo con un esempio:
Se nella ddl1 ho i valori A,B,C,...N e nella ddl2 i valori A1,A2,B1,B2,C1,C2,...N1,N2 il confronto per la funzione è quando viene trovata la lettera A o la B o la C o la N quindi il numero di caratteri da togliere per il confronto sarà solamente 1 e quindi metterò 1 come terzo paramentro da passare alla funzione (perche A1- un carattere = A."
Io ho messo come hai detto tu in un unico gruppo di domande una domanda con le Regioni e un'altra con le Provine, ho messo lo script nella prima domanda cambiando ad ogni "IDdellaDDL1" e "IDdellaDDL2" l'ID delle due domande, ho anche messo per esempio nella prima domanda dove ci sono le Regioni Pimonte=A e le sue Province A1,A2,etc...
Non mi viene perchè sicuramente non ho inserito qualcosa ma non riesco a capire quale, premetto che uso da pochi giorni Limesurvey quindi mi scuso per la mia ignoranza.
Grazie mille e buona giornata

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
2 Jahre 1 Monat her #164325 von oreslas
Ciao Frasca,
nessun problema, ci mancherebbe.
Ma quindi non hai provato ad importare il file .lsg che ho messo qui nel post? Perchè in questo file ci sono già le regioni e le province.
A questo punto allora se riesci ad esportare le tue domande, o il tuo gruppo di domande, mandamelo così lo controllo io.

PS: Io poi non so quale sia la versione che stai usando anche perchè lo script funziona sicuramente con la versione 3.3.1
Folgende Benutzer bedankten sich: Frasca

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
2 Jahre 1 Monat her #164326 von Frasca
Versione 2.72.6 di Limesurvey.
Ho importato il tuo file e ho tutte le Regioni e Province.
Ti invio il mio gruppo di domande:

Dateianhang:

Dateiname: limesurvey...p_49.lsg
Dateigröße:45 KB

Dateianhang:

Dateiname: limesurvey...p_49.lsg
Dateigröße:45 KB

Dateianhang:

Dateiname: limesurvey...p_49.lsg
Dateigröße:45 KB

Dateianhang:

Dateiname: limesurvey...p_49.lsg
Dateigröße:45 KB
Anhänge:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
2 Jahre 1 Monat her - 2 Jahre 1 Monat her #164327 von oreslas
In allegato ti invio nuovamente il gruppo modificato che funziona correttamente.

IMPORTANTE....l'unico posto dove devi modificare l'id delle domande è in fase di chiamata della funzione, dove nello script trovi

CaricaDdl({620},{621},2);

Quindi importa questo gruppo che ti ho allegato e nello script presente nella ddl1 (quella delle regioni) limitati a sostituire il numero 620 con l'id della tua ddl1 (dove hai le regioni) ed il numero 621 con l'id della tua ddl2 (dove hai le province).

Mi raccomando usa il mio gruppo di domande perchè per farlo funzionare ho dovuto modificare anche i codici delle tue province.

Ah, dimenticavo, la versione che usi non è detto che sia compatibile con questo script, io purtroppo uso l'ultima versione e funziona correttamente.
Anhänge:
Letzte Änderung: 2 Jahre 1 Monat her von oreslas.
Folgende Benutzer bedankten sich: Frasca

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
2 Jahre 1 Monat her #164333 von Frasca
Come vedi ho cambiato quello che mi avevi detto in CaricaDdl({2196},{2197},2) ma continua a non funzionare.


Regione <script type="text/javascript" charset="utf-8">
$(document).ready(function(){
$('list-dropdown .dropdown-item select').each(function(i){
if($('option[selected="selected"]', this).length == 0){
$(this).prepend('<option value="">Please choose...</option>');
$(this).val('');
}
});
/*
ATTENZIONE: LEGGERE ATTENTAMENTE PRIMA DI USARE LO SCRIPT
Cosa fa lo sciprt: Tale script consente, una volta scelto un valore da una prima dropdownlist (ddl1), di filtrare i valori presenti in una seconda dropdownlist (ddl2) in base a quanto scelto nella ddl1;

1. Lo script va inserito nel campo DDL primario (ddl1)
2. I paramentri da passare nella funzione sono ({IDdellaDDL1},{IDdellaDDL2},numeri di caratteri da togliere nei valori della DDL2 per fare il confronto con il valore della DDL1)
3. Es. se la mia DDL1 è id=10 e la DDL2 è id=14 mettiamo al posto di IDdellaDDL1 il valore 10 (primo parametro della funzione) e al posto di IDdellaDDL2 il valore 14 (secondo parametro della funzione)
4. per quanto riguarda il numero di caratteri da togliere nei valori della ddl2 per fare il confronto cerco di spiegarvelo con un esempio:
Se nella ddl1 ho i valori A,B,C,...N e nella ddl2 i valori A1,A2,B1,B2,C1,C2,...N1,N2 il confronto per la funzione è quando viene trovata la lettera A o la B o la C o la N quindi il numero di caratteri da togliere per il confronto sarà solamente 1 e quindi metterò 1 come terzo paramentro da passare alla funzione (perche A1- un carattere = A.
Se invece nella ddl1 ho i valori AAA,BBB,CCC,...NNN e nella ddl2 i valori AAA111,AAA222,BBB111,BBB222,CCC111,CCC222,....NNN111,NNN222 il confronto lo dovremo fare con le lettere AAA o BBB o CCC o NNN quindi il caratteri da togliere per il confronto saranno in questo caso 3 e quindi metterò 3 come terzo parametro (perce AAA111-tre caratteri = AAA.

IMPORTANTISSIMO: lo script funziona SOLAMENTE SE le due DDL vengono mostrate in uno stesso gruppo di domande e se, quindi, l'indagine viene visualizzata con un gruppo di domande per pagina
*/
CaricaDdl({2196},{2197},2);
});
function CaricaDdl(idDdl1,idDdl2,NChr){
$(document).ready(function(){
if($("#question"+idDdl1).hasClass('list-dropdown')){
$("#question"+idDdl1+" div.dropdown-item").each(function(index){
var strObjDdl1 = jqSelector($(this).find("select").eq(0).attr('id'));
$("#"+strObjDdl1).change(function(){
var FiltroValore=$("#"+strObjDdl1).val();
//ora mi ciclo i valori della ddl secondaria
if($("#question"+idDdl2).hasClass('list-dropdown')){
$("#question"+idDdl2+" div.dropdown-item").each(function(index){
var strObjDdl2 = jqSelector($(this).find("select").eq(0).attr('id'));
var idNewSelectFilter = jqSelector('select'+idDdl2+'_'+index);
var NewSelectElement = "<select id='"+idNewSelectFilter+"' class='form-control'><option value=''>"+$("#"+strObjDdl2+" option[value='']:first").text()+"</option></select>";
$("#"+strObjDdl2).hide();
//se non esiste già
if($("#"+idNewSelectFilter).length==0){
$("#"+strObjDdl2).after(NewSelectElement);
}
$("#"+strObjDdl2).val('');
$('#'+idNewSelectFilter).val('');
$('#'+idNewSelectFilter+' option').not(':first').remove();
if(FiltroValore==""){
$('#'+idNewSelectFilter).hide();
}
else{
$('#'+idNewSelectFilter).show();
$("#"+strObjDdl2).find('option').each(function(){
if($(this).attr('value').substring(0, $(this).attr('value').length - NChr)==FiltroValore){
$(this).clone().appendTo('#'+idNewSelectFilter);
}
});
}
$("#"+idNewSelectFilter).change(function(){
$('#'+strObjDdl2).val($(this).val());
saveval=$('#'+strObjDdl1).val();
$('#'+strObjDdl2).trigger('change');
if($(this).val()==""){
$('#'+strObjDdl1).val(saveval);
$('#'+strObjDdl1).trigger('change');
$('#'+strObjDdl2).val($(this).val(""));
}
});
if(FiltroValore==""){
$('#'+strObjDdl2).show();
}
});
}
});
});
}
});
}
function jqSelector(str) {
return str.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g, '\\$1');
}
</script>

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
2 Jahre 1 Monat her #164336 von oreslas
Se hai caricato il mio gruppo di domande e modificato correttamente i parametri con i tuoi id ancora non funziona significa che non è compatibile con la versione di LS che stai usando.

Io purtroppo ho installato solo quella 3.3.1 quindi non saprei cosa altro fare....mi dispiace
Folgende Benutzer bedankten sich: Frasca

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Jetzt loslegen!

Melden Sie sich jetzt an, und erstellen Sie in wenigen Minuten Ihre erste Umfrage.

Account einrichten

Abonnieren Sie unseren Newsletter

Abonnieren Sie unseren Newsletter für alle Neuigkeiten rund um LimeSurvey
captcha