Okay, here's another approach using the jquery-csv plugin.
1) Download jquery.csv.js and place it in your template directory.
2) Place your CSV file in your template directory
3) Add this to startpage.pstpl AFTER the {TEMPLATEJS} placeholder:
4) Add a script like this to the question source:
Here is a template and working demo survey (install the template first).
In this survey a list of countries is imported from a CSV file for the autocomplete function. I disabled immediate pop-up of the autocomplete as it's very long so you need to type at least one letter to fire it.
[File Attachment: test_csv_2.zip]
[File Attachment: limesurvey_survey_595674.lss]
1) Download jquery.csv.js and place it in your template directory.
2) Place your CSV file in your template directory
3) Add this to startpage.pstpl AFTER the {TEMPLATEJS} placeholder:
<script type="text/javascript" src="{TEMPLATEURL}jquery.csv.js"></script>
4) Add a script like this to the question source:
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
// Identify the question
var q1ID = '{QID}';
var q1 = $('#question'+q1ID+'');
var url = '{TEMPLATEURL}countries.csv';
var countries = new Array();
// Grab the CSV contents
$.get(url, function(data) {
// Convert CSV contents to an array of arrays
tmp = $.csv.toArrays(data);
// Load the countries array
$(tmp).each(function(i, item) {
countries.push(item[0]);
});
var msg = 'You cannot have duplicate entries.';
$('input.text', q1).autocomplete({
source: countries,
minLength: 0,
change: function(event, ui) {
var thisInput = $(this);
if($(thisInput).val() != '') {
$('input.text', q1).not($(thisInput)).each(function(){
if($(this).val().toLowerCase() == $(thisInput).val().toLowerCase()) {
alert (msg);
$(thisInput).val('').focus();
$('input.text', q1).autocomplete('close');
return false;
}
});
}
},
select: function(event, ui) {
var thisInput = $(this);
var okay = 1;
$('input.text', q1).not($(thisInput)).each(function(){
if($(this).val().toLowerCase() == ui.item.value.toLowerCase()) {
okay = 0;
}
});
if(okay == 0) {
alert (msg);
return false;
}
}
});
});
});
</script>
Here is a template and working demo survey (install the template first).
In this survey a list of countries is imported from a CSV file for the autocomplete function. I disabled immediate pop-up of the autocomplete as it's very long so you need to type at least one letter to fire it.
[File Attachment: test_csv_2.zip]
[File Attachment: limesurvey_survey_595674.lss]