我在我的appscript应用程序中使用html服务。
在我的 sample.gs 文件中,我连接到jdbc并从我的云sql DB中获取值。
代码在我的 sample.gs 中是这样的
function doGet(){
return HtmlService.createTemplateFromFile('datatable').evaluate().setSandboxMode(HtmlService.SandboxMode.NATIVE);
}
function getSql(){
var conn = Jdbc.getCloudSqlConnection('here i write my sql url');
var stmt = conn.createStatement();
var results = stmt.executeQuery("select name, location, address, phone, fax from person");
Logger.log(results);
return results;
}
记录器记录 jdbcResultSet。因此,查询工作正常。
在我的数据表中.html我调用 GS 文件并从表中获取值。它工作正常。但只有返回类型值 im 在我的 html 文件中变为空。我的数据.html代码就像他的
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type='text/javascript'>
$(function(){
var runner = google.script.run.withFailureHandler(onFailure);
runner.withSuccessHandler(onSuccess).getSql();
});
function onSuccess(data){
alert(data);
}
function onFailure(data){
alert(data);
}
它进入成功功能。但警报为空。请帮助我如何获取结果值。
您需要在服务器端检索结果(gs 代码),例如将它们放在数组中并返回到客户端。检查此示例
Code.gs
function doGet(){
return HtmlService.createTemplateFromFile('datatable').evaluate().setSandboxMode(HtmlService.SandboxMode.NATIVE);
}
function getSql(){
var conn = Jdbc.getConnection('jdbc:mysql://sql4.freesqldatabase.com:3306/sql427377', 'sql427377', '');
var stmt = conn.createStatement();
var results = stmt.executeQuery("select name, location, address, phone, fax from person");
Logger.log(results);
var resultsArray = [];
while(results.next()) {
resultsArray.push({'name': results.getString(1),
'location' : results.getString(2),
'address' : results.getString(3),
'phone' : results.getString(4),
'fax' : results.getString(5)});
}
return JSON.stringify(resultsArray);
}
数据表
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type='text/javascript'>
$(function(){
var runner = google.script.run.withFailureHandler(onFailure);
runner.withSuccessHandler(onSuccess).getSql();
});
function onSuccess(data){
var data = JSON.parse(data);
for(var x in data) {
$("#myTable").append("<tr><td>"+data[x].name+"</td><td>"+data[x].location+"</td> <td>"+data[x].address+"</td><td>"+data[x].phone+"</td><td>"+data[x].fax+"</td></tr>");
}
}
function onFailure(data){
alert(data);
}
</script>
<table id="myTable"></table>