var cont_experiencia = 0;
let cont_estudios = 0;
let cont_tecnologia = 0;
function agregarFieldExpierncia(evt){
const btn = evt.target
cont_experiencia++;
const nee = document.createElement("div")
nee.innerHTML = `
`;
nee.className = "mb-3 col-5"
form.insertBefore(nee,btn)
}
function serializeJSON (form) {
// Create a new FormData object
const formData = new FormData(form);
// Create an object to hold the name/value pairs
const pairs = {};
const experiencias = [{}];
const estudios = [{}];
const tecnologias = [{}];
// Add each name/value pair to the object
for (const [name, value] of formData) {
//los atributos no primitivos tiene una nomenclatura distinta en sus names
//ej.: experiencia-4-institucion == experencias[4].institucion
let codificacion = name.split("-")
if(codificacion.length==1){
pairs[name] = value
}
else{
switch (codificacion[0]) {
case "experiencia":
if(experiencias[codificacion[1]]==null) experiencias[codificacion[1]]={};
experiencias[codificacion[1]][codificacion[2]] = value
break;
case "estudio":
if(estudios[codificacion[1]]==null) estudios[codificacion[1]]={};
estudios[codificacion[1]][codificacion[2]] = value
break;
case "tecnologia":
if(tecnologias[codificacion[1]]==null) tecnologias[codificacion[1]]={};
tecnologias[codificacion[1]][codificacion[2]] = value
break;
default:
break;
}
}
}
pairs["experiencias"] = experiencias
pairs["estudios"] = estudios
pairs["tecnologias"] = tecnologias
// Return the JSON string
return JSON.stringify(pairs, null, 2);
}
async function postData(url = '', data = {}) {
// Default options are marked with *
const response = await fetch(url, {
method: 'POST', // *GET, POST, PUT, DELETE, etc.
mode: 'cors', // no-cors, *cors, same-origin
cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
credentials: 'same-origin', // include, *same-origin, omit
headers: {
'Content-Type': 'application/json'
// 'Content-Type': 'application/x-www-form-urlencoded',
},
redirect: 'follow', // manual, *follow, error
referrerPolicy: 'no-referrer', // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url
body: data // body data type must match "Content-Type" header
});
return response; // parses JSON response into native JavaScript objects
}
form = document.querySelector("form");
form.addEventListener("submit",(evt)=>{
postData('postulante', serializeJSON(form))
.then(response => {
console.log(response); // JSON data parsed by `data.json()` call
location.replace(response.url);
});
evt.preventDefault();
} );