How to insert an element in an array of jsons from a form?

0
<script>
    $(document).ready(function(){
            $.getJSON("sampleJson.JSON",function(data){
                    var sample_data = '';
                    $.each(data,function(key, value){
                        sample_data += '<tr>';
                        sample_data += '<td>'+ value.name +'</td>';
                        sample_data += '<td>'+ value.age +'</td>';
                        sample_data += '<td>'+ value.email +'</td>';
                        sample_data += '<td>'+ value.phone +'</td>';
                        sample_data += '<td>'+ value.address +'</td>';
                            sample_data += '</tr>';
                    });

                    $('#sampleJson').append(sample_data);
            });
        });
    </script>

        <script>


    var nuevoUsuarios={datos:[{name :''},{age:''},{email:''},{phone:''},{address:''}]};

    var obj = JSON.parse(nuevoUsuarios);

    for (var i = 0; i < rows.length; i++) {
     obj['datos'].push({"Nombre":rows[i].nombre,"Edad":rows[i].age,"Email":rows[i].email,"Telefono":rows[i].phone,"Direccion":rows[i].address});
};

    nuevoUsuarios= JSON.stringify(obj);
    // function cargareventos(){
    //         document.getElementById("nuevo-usuario").addEventListener("submit", nuevoUsuario,false);
    // }

    // function nuevoUsuario(event){
    //     event.preventDefault();

    //     var namein = document.getElementById("name").value;
    //     var agein = document.getElementById("age").value;
    //     var emailin = document.getElementById("email").value;
    //     var namein = document.getElementById("name").value;
    //     var phonein = document.getElementById("phone").value;
    //     var addressin = document.getElementById("adress").value;


    //     var nuevoUsuario = {name: namein , age:agein ,  email: emailin, phone:phonein, address: addressin };
    //     console.log(nuevoUsuario);
    //     sample_data.push(nuevoUsuario);

    // }

</script>
    
asked by Guillermo Lopez Vargas 06.09.2018 в 20:59
source

1 answer

0

Try this, pure javascript.

// list of people
var people = [
  {name: 'Foo', lastName: 'Bar', age: 25},
  {name: 'Bar', lastName: 'Foo', age: 30}
]
 // get form by id
var personForm = document.getElementById('personForm');
var results = document.getElementById('results');


// on form submit
personForm.onsubmit = function(e){
  e.preventDefault(); // stop event to propagate
  e.stopPropagation();
  
  var valuesToAdd = getValuesFromInputs(personForm.querySelectorAll('input[name]'));
  
  people.push(valuesToAdd);
 
  results.innerHTML = JSON.stringify(people);
}
   
// get values from each input of form
function getValuesFromInputs(inputs) {
  var ins = [...inputs]; // convert NodeList to normal array
  return ins.reduce((prev,next) => {
    prev[next.name] = next.value
    return prev
  }, {});

}
<form id="personForm">
  <input name="name" />
  <input name="lastName" />
  <input name="age" />
  <input type="submit" />
</form>


<div id="results">
  
</div>
    
answered by 06.09.2018 в 21:36