Curso de Google Formulários - #10 Formulário Interno (Validações e Retornos)
15/10/2020Nesse tutorial trabalharemos com validação de dados dentro do nosso formulário interno do Google e como trazer dados da planilha para o formulário.
Validação de Dados com Google Forms
Como exemplo faremos a validação de um CPF antes de inserir os dados na planilha:
server.gs
//Recebe os dados do formulário no lado servidor
function processForm(formObject)
{
let name=formObject.name;
let age=formObject.age;
let lastRow=sheet.getLastRow();
let cpf=formObject.cpf;
let cpfValidado1=cpf.replace(/\./g,'');
let cpfValidado2=cpfValidado1.replace('-','');
if(testaCPF(cpfValidado2)){
if(verifyCPF(cpf)){
sheet.getRange(lastRow+1,1).setValue(name);
sheet.getRange(lastRow+1,2).setValue(age);
sheet.getRange(lastRow+1,3).setValue(cpf);
return "<div class='alert alert-success'>Os dados foram inseridos com sucesso</div>";
}else{
return "<div class='alert alert-danger'>CPF já cadastrado!</div>";
}
}else{
return "<div class='alert alert-danger'>O cpf não é válido!</div>";
}
}
function testaCPF(strCPF) {
let Soma;
let Resto;
Soma = 0;
if (strCPF == "00000000000") return false;
for (i=1; i<=9; i++) Soma = Soma + parseInt(strCPF.substring(i-1, i)) * (11 - i);
Resto = (Soma * 10) % 11;
if ((Resto == 10) || (Resto == 11)) Resto = 0;
if (Resto != parseInt(strCPF.substring(9, 10)) ) return false;
Soma = 0;
for (i = 1; i <= 10; i++) Soma = Soma + parseInt(strCPF.substring(i-1, i)) * (12 - i);
Resto = (Soma * 10) % 11;
if ((Resto == 10) || (Resto == 11)) Resto = 0;
if (Resto != parseInt(strCPF.substring(10, 11) ) ) return false;
return true;
}
Podemos verificar também se o cpf já está cadastrado na planilha:
//Verificar se o cpf já está cadastro
function verifyCPF(cpf)
{
let cadastrados=sheet.getRange("C1:C").getValues();
let erro=0;
cadastrados.map(function(elem,ind,obj){
if(elem == cpf){
erro+=1;
}
});
if(erro == 0){
return true;
}else{
return false;
}
}
form.html
No nosso formulário html vamos criar o select responsável por exibir as cidades que serão buscadas na planilha:
<select name="city" id="city">
<option value="">Selecione a cidade</option>
</select>
javascript.html
Iremos adicionar as options no select:
//Adiciona as options ao select
let selCity = document.querySelector('#city');
function callback(response)
{
let arr=response;
arr.map(function(elem,ind,obj){
let opt=document.createElement('option');
opt.appendChild(document.createTextNode(elem[0]));
opt.value=elem[0];
selCity.appendChild(opt);
});
}
google.script.run.withSuccessHandler(callback).addCities();
server.gs
Vamos adicionar a função addCities para inserirem no nosso select:
//Pegar as cidades na planilha
function addCities()
{
let arrCities=sheet.getRange("E1:E").getValues();
let arr=[];
arrCities.map(function(elem,ind,obj){
if(elem != ""){
arr.push(elem);
}
});
return arr;
}
Então é isso! Por hoje é só! Sucesso nos códigos e na vida!
Precisa de um teacher? webdesignemfoco@gmail.com
Posts Relacionados
Curso de Google Formulários - #09 Formulário Interno (Cadastro e Máscaras)
Nesse tutorial vamos continuar o web template fazendo a inserção dos dados digitados no formulário na nossa planilha do Google e máscaras de campos.
Curso de Google Formulários - #11 Introdução à API
Iniciamos hoje a parte mais avançada do curso de Google Forms com a introdução a API do Google Sheets utilizando como linguagem backend o PHP.