tony Stark
tony Stark

Reputation: 53

Get the selected value in google app script

How to pass a select box value.

I have a spreadsheet where i want to filter based on a select box value.

I made a way to call the app function on form submit. But I am not able to pass one more parameter at the other side.

I want to filter based on the select box value and thereby retrieve the result from the spreadsheet on to the web app. This is my selectbox in html.

 Select DATA   
 <select name ="productId" id="gettheVAL">
   <option>DATA1 </option>   
  <option>DATA2 </option>
 <option>DATA3 </option>
 </select>

Can anyone guide me on this? I have called the function via this

   form.on('submit', function(event){

        event.preventDefault();
        runner.withSuccessHandler(function(array){ 
             for (var i = 0; i < array.length; i++) {

               var item = '<tr><td>' + array[i] +'</td></tr>';
                table.append(item);
        }

        }).retrieveValuesFromForm(this); 

Update

Adding the function - retrieveValuesFromForm below:

 function retrieveValuesFromForm(req) {

//var selectedvalue=$('input[name="gettheSelectValue"]:checked').val();// tried like this but $ is undefined here
var sheetActive = SpreadsheetApp.openById("SHEETID");
var sheet = sheetActive.getSheetByName("SHEETNAME");

var range = sheet.getRange('A:U'); 
var rawData = range.getValues();

var data = [];
for (var i = 0; i < rawData.length; i++) {
    if ((rawData[i][2] == selectedvalue)) // Check to see if column 3 says selectedvalue if not skip it
    {
        //processing
    }
}
return data;

}

Upvotes: 1

Views: 3685

Answers (2)

Cooper
Cooper

Reputation: 64140

Here's how I pass a selected option and a few other things.

function sendText()
    {
      var culr=$('input[name="priority"]:checked').val();
      var type=$('#sel1').val();
      var txt=$('#txt1').val();
      var obj={'type':type,'text':txt,'color':culr};
      $('#txt1').css('background-color','#ffff00');
      google.script.run
        .withSuccessHandler(clearText)
        .dispText(obj);
    }

I'm guessing that you need to add this line into your head tag area.

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

Upvotes: 1

terrywb
terrywb

Reputation: 3956

Based on the assumption that you have a field in your form such as

<select name ="productId" id="gettheVAL">

In your form, You could call your Google App Script function with the following parameter

runner.withSuccessHandler(function(array){ 
    ...
}).retrieveValuesFromForm($("#gettheVAL").val()); 

You would then change the signature for retriveValuesFromForm

function retrieveValuesFromForm(selectVal) {
    ...
}

Upvotes: 1

Related Questions