0
私は自分のHtmlフォームをゼロから作成して、特定のスプレッドシートにリンクしています。 私は私が望んでいたとして、スプレッドシートにフォームデータを送信することに成功していますが、私は、フォームの送信ボタンを押すと、別のタブが現れ、私は、このエラーメッセージが表示されます:Google Appsコードは実行されていますが、「サポートされていない戻り値のタイプ」を示しています
完成したスクリプトが、値がサポートされていません返さ戻り値の型。
私のプログラムは私が望むように動作しますが、毎回このエラーメッセージが表示されます。
私はdoGetとdoPostを使用してスプレッドシートにデータを送信しています。ここで
は私のdoGetメソッドのコードです:ここで
function doGet(){
var html = HtmlService
.createHtmlOutputFromFile('body')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
return html;
}
は私のdoPostメソッドのコードです:ここで
function doPost(e) {
var ss = SpreadsheetApp.openById("id");
var Properties = PropertiesService.getScriptProperties();
var sheet = ss.getSheetByName("sheet1");
var uid = Properties.getProperty("uid");
var uid = Number(uid) + 1;
var date = Utilities.formatDate(new Date(), "JST", "yyyy/MM/dd HH:mm:ss");
var array = [uid,date,e.parameter.pref,e.parameter.area,e.parameter.building];
sheet.appendRow(array);
Properties.setProperty("uid",uid);
}
は、追加情報(HTMLとジャバスクリプト)である
HTMLコード:
<body>
<iframe src="#" id="frame" name="frame" style="width:0px; height:0px; border:0px;">
</iframe>
<div class="center" id="main">
<h3>Form Title</h3>
<form id="form" action="web app URL" method="post" target="frame" name="form">
<div class="left">
<p class="custom" align="left">
Prefecture:<br>
<select name="pref" onChange="functionName1()" required>
<option selected>Choose...</option>
<option>Tokyo</option>
<option>Yamanashi</option>
</select><span class="required">*</span>
</p>
<p class="custom" align="left">
Area:<br>
<select name="area" onChange="functionName2()" required>
<option>Choose...</option>
</select><span class="required">*</span>
</p>
<p class="custom" align="left">
Building:<br>
<select name="building" required>
<option>Choose...</option>
</select><span class="required">*</span>
</p>
<p class="center">
<input type="button" value="送信" class="btn" onClick="formsend()">
</p>
</div>
</form>
</div>
<script type="text/javascript">
function formsend(){
if(window.confirm("Are you sure to submit?")){
document.getElementById("form").submit();
document.getElementById("main").innerHTML = "<p><b><div style='color:red; font-size:16pt;'>Form sent.</div></b></p><input type='button' value='戻る' onClick='reload()'>";
}
else{window.alert("Cancelled");
}
}
function reload(){
location.href = "Web App URL";
}
</script>
可能性のある重複したサーバーと通信するための最良の方法は、私は例として、あなたのコードにいくつかの変更を加えgoogle.script.run APIことです[スクリプトは完了しましたが、返される値はサポートされていない戻り値の型ですか?](http://stackoverflow.com/questions/32927772/the-script-completed-but-the-returned-value-is-not-a-supported -return-type) –
送信ボタンとフォームでHTMLを表示する必要があります。何かが新しいブラウザタブを開くようになっているようです。これにより、 'target'属性とあなたのHTMLにある可能性のあるURLまたはリンクについて不思議に思っています。 –
あなたのリンクSujayをありがとう。私はこの質問を投稿する前にそれを試しました。それは私に別のエラーメッセージを表示することが判明した。とにかく、ありがとうございました。本当に感謝しています。 – kurtman