2015-03-20 3 views
1

Я пытаюсь заполнить выпадающий список, используя данные, хранящиеся в электронной таблице, чтобы пользователь мог сделать выбор, и после этого может быть выполнено какое-то действие.jquery не работает с скриптом Google Apps

Я пытаюсь, но не могу получить данные, которые будут заполнены в списке.

С уважением,

Code.gs

function doGet() { 
    var template = HtmlService.createTemplateFromFile('index'); 

    var htmlOutput = template.evaluate() 
        .setSandboxMode(HtmlService.SandboxMode.NATIVE); 

    return htmlOutput; 
} 

function getClients() { 
    var doc = SpreadsheetApp.openById("1eFZ1Qmw9ycPn7kXZX9DhA8m5kUxXS8KW4k9McvAaXpo"); 
    var sheet = doc.getActiveSheet(); 
    var allClients = sheet.getRange(3, 3, sheet.getLastRow(),1).getValues(); 
    var clients = []; 
    for (i=0;i<allClients.length-1;i++){ 
     clients.push(allClients[i][0]); 
     Logger.log("Client "+i+clients[i]); 


    } 
    return(clients); 
} 

index.html

<html> 
<head> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jquerymobile/1.4.3/jquery.mobile.min.css" /> 
<script src="//ajax.googleapis.com/ajax/libs/jquerymobile/1.4.3/jquery.mobile.min.js"></script> 
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.0/themes/smoothness/jquery-ui.css" /> 
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.0/jquery-ui.min.js"></script> 

<script> 

function addClients(clients){ 
    $('#customer').empty(); 
    for (var i in clients) { 
    $('#customer').append('<option>'+clients[i]+'</option>'); 
    $('#customer').trigger("chosen:updated"); 
    } 
}); 

$('document').ready(function(){ 
google.script.run.withSuccessHandler(addClients).getClients(); 
}); 
</script> 
</head> 

<div> 
<h3><b>Client:</b></h3> 

<select name="customer" id="customer" data-native-menu="true" data-role="none"> 
    <option> ---- Choose a client ----</option> 
</select> 
</div> 
</html> 

ответ

0

Используйте новый IFRAME вместо нативного.

var htmlOutput = template.evaluate() .setSandboxMode(HtmlService.SandboxMode.IFRAME);

Если вы начнете получать undefined функции в Jquery, удалите .min.

+0

Я изменил на IFRAME, но все тот же результат. пустое поле выбора. –

+0

Я пробовал все другие параметры, определяя массив в самой функции, но список не заполняется. Функция не выполняется вообще. –

+0

Я думаю, что у вас есть дополнительный ');' в вашем коде. – Kriggs

Смежные вопросы