2013-08-28 67 views
1

我想計劃我的兒子1歲生日派對。我住在夏威夷,所以當你邀請一個人,有時他們往往會帶來他們的朋友,姐妹,表兄弟姐妹,auntys,叔叔,狗等.....但由於我們保留我的兒子派對會場有座位數量有限,我們不能只有更多的人來。另外,我們正在通過頭部/座位進行支付。有沒有辦法爲Google表單創建腳本來檢查電子表格?

所以隨着中說,我有我的賓客名單的電子表格,並有我已經限制了每個邀請的座位數量列。我想爲每個邀請分配一個代碼。

例如
姓|座位|代碼
Family A | 3個座位| ABC123
家族B | 5個座位| DEF456

所以,如果我把請柬上的QR碼,並給每個邀請/家庭他們的代碼,

我想谷歌的形式,讓每個接收者進入他們的代碼和腳本來檢查我的電子表格他們輸入的這段代碼使得表格知道收件人有多少個席位被限制預留。

家庭A只能預留3個座位,家庭B只能預留5個座位,不能再預訂。

有沒有辦法做到這一點?

回答

0

您無法在Google表單字段中輸入代碼,並且腳本函數會在後面運行。因此殺死可以檢查另一個字段的驗證。只有在表格提交後才能查看回復,你可以檢查值是什麼。

如果您堅持使用單一Google表單,您可以編寫一個腳本來監控提交內容併發送電子郵件或讓他們知道他們預訂了太多人(事後)。也可以編寫一個腳本,爲已經將最大客人編入下拉列表的每個邀請創建單獨的表單。然後發送每個邀請自己的表單url。

另一種方法是使用2個UI服務之一編寫自己的應用程序,這個服務就像一個表單。在那裏你可以與用戶輸入和你想要的驗證進行交互。以UiApp爲例...

var MAX = []; 
MAX['123'] = [2]; 
MAX['456'] = [3]; 

function doGet() { 
    var app = UiApp.createApplication(); 
    var panel = app.createVerticalPanel(); 
    var code = app.createTextBox().setId('code').setName('code'); 
    var guests = app.createTextBox().setId('guests').setName('guests'); 
    var submit = app.createButton('SUBMIT').setId('submit').setEnabled(false); 
    var status = app.createLabel('', false).setId('status'); 

    var handler = app.createServerHandler('checkGuests').addCallbackElement(panel); 
    guests.addValueChangeHandler(handler); 

    handler = app.createServerHandler('submit').addCallbackElement(panel); 
    submit.addClickHandler(handler); 

    panel.add(code).add(guests).add(submit).add(status); 
    app.add(panel); 
    return app; 
} 

function checkGuests(e) { 
    var app = UiApp.getActiveApplication(); 
    var code = e.parameter.code; 
    var guests = e.parameter.guests; 

    if (code == '' || code == undefined) { 
    app.getElementById('submit').setEnabled(false) 
    app.getElementById('status').setText('Please enter your code.'); } 
    else if (parseInt(guests) <= MAX[code]) { 
    app.getElementById('submit').setEnabled(true); 
    app.getElementById('status').setText(''); } 
    else { 
    app.getElementById('submit').setEnabled(false) 
    app.getElementById('status').setText('Whoops, too many people!'); } 
    return app; 
} 

function submit(e) { 
} 
相關問題