0

listBox から選択したアイテムを取得し、アップロードするファイルのファイル名に追加する小さなアプリを構築しようとしています。すべてを正しく表示でき、ファイルがアップロードされますが、ファイル名に追加する必要がある値は「未定義」です。以下にサンプルを示します。

 function doGet(e) {

 var app = UiApp.createApplication().setTitle("Upload CSV to Sheet");

 var panel = app.createVerticalPanel();
 var listBox = app.createListBox().setName('myList').setId('myList').setWidth('80px');
 listBox.addItem('Value1');
 listBox.addItem('Value2');
 listBox.addItem('Value3');
 listBox.addItem('Value4');

 panel.add(listBox);
 app.add(panel);

   var formContent = app.createVerticalPanel();
   formContent.add(app.createFileUpload().setName('thefile'));
   formContent.add(app.createSubmitButton('Submit'));
   var form = app.createFormPanel();
   form.add(formContent);
   app.add(form);
   return app;
 }

function doPost(e) {
var fileBlob = e.parameter.thefile;
var app = UiApp.getActiveApplication();
   var doc = DocsList.createFile(fileBlob).rename(e.parameter.myList+Utilities.formatDate(new Date(), "GMT", "MM-dd-yy"));
   return app;
 }

listBox から値を取得するためにファイルの名前を取得するにはどうすればよいですか?

4

1 に答える 1

2

listBoxをフォームパネルのコンテンツに追加するのではなく、アプリに追加しました。これには 2 つの結果があります。

1 - リストは送信後も表示されたままになります

2 - フォームにないため、リストは受信されdoPostません...

このようにしてみてください:

function doGet() {

 var app = UiApp.createApplication().setTitle("Upload CSV to Sheet");

 var panel = app.createVerticalPanel();
 var listBox = app.createListBox().setName('myList').setId('myList').setWidth('80px');
 listBox.addItem('Value1');
 listBox.addItem('Value2');
 listBox.addItem('Value3');
 listBox.addItem('Value4');

 panel.add(listBox);

   var formContent = app.createVerticalPanel();
   formContent.add(app.createFileUpload().setName('thefile'));
   formContent.add(app.createSubmitButton('Submit'));
   formContent.add(panel);
   var form = app.createFormPanel();
   form.add(formContent);
   app.add(form);
   return app;
 }

function doPost(e) {
  var fileBlob = e.parameter.thefile;
  var doc = DocsList.createFile(fileBlob).rename(e.parameter.myList+' '+Utilities.formatDate(new Date(), "GMT", "MM-dd-yy"));
  var app = UiApp.getActiveApplication();
  return app;
 }
于 2013-03-22T17:58:18.783 に答える