Tengo 3 campos de formulario. Quiero hacer una matriz JSON. No sé cómo hacer que mi requisito sea una matriz JSON, dentro de una llena solo quiero hacer una matriz más. Lo estoy intentando, pero no puedo crear.

var title = $("#title").val();
var authorities = $(".your_profile option:selected").val();
var edition = $("#edition").val();
response = [];
var activated = true;
authorities=[];
var authorities = $(".your_profile option:selected").val();
var createdDate= "2016-12-13T13:35:24.451Z";   
   response.push({activated:activated,authorities:authorities,createdDate:createdDate});
   console.log(response);
Title:<input type="text" id="title">
authorities:<selected>
	<option value="Agent">Agent</option>
	<option value="Developer">Developer</option>
	<option value="Customer">Customer</option>
</selected>
Title:<input type="text" id="edition">
<input type="button" id="btn-submit" value="submit">

Necesito resultados como este

[
    {
        "title": "Professional JavaScript",
        "authorities": [
            "Nicholas C. Zakas"
        ],
        "edition": "3",
    },
]   
0
Kani R 13 dic. 2016 a las 17:15

2 respuestas

La mejor respuesta

Puedes hacerlo así:

Utilice JSON.stringify() para convertir sus datos a json

$(function() {

    $("#submitBtn").click(function(e){
      //Prevent the default behaviour
      e.preventDefault();
      var title =$("#title").val();
      var authorities = $("#selection").val();
      var edition =$("#edition").val();
      var response = new Object();
      response.title = title;
      response.authorities = [authorities];
      response.edition = edition;
      var json_str = JSON.stringify(response);
      console.log(json_str);
    });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>Title:
<br>
<input type="text" id="title">
<br>
Authorities:
<br>
<select id="selection">
    <option value="Agent">Agent</option>
    <option value="Developer">Developer</option>
    <option value="Customer">Customer</option>
</select>
<br>
Edition:
<br>
<input type="text" id="edition">
<br><br>
<input type="button" id="submitBtn" value="submit">

Y para pasar los datos a través de ajax, puede hacerlo así:

$.ajax({
   url: 'url_to_web_server',
   type: 'POST',
   data: json_str, // Your json variable here
   type: 'json',
   success: function(data) {
      // Handle success response here
   },
   error: function() {
      // Handle error response here
   }
});

¡Espero que esto ayude!

0
Saumya Rastogi 13 dic. 2016 a las 15:28

Puedes hacerlo de esta manera:

HTML

Title:<input type="text" id="title">
authorities:<select id="selection" multiple="multiple">
    <option value="Agent">Agent</option>
    <option value="Developer">Developer</option>
    <option value="Customer">Customer</option>
</select>
Edition:<input type="text" id="edition">
<input type="button" id="btn-submit" value="submit">

JAVASCRIPT

<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
        <script type="text/javascript">
$(function(){
    $("#btn-submit").click(function(evt){
    //Prevent the default behaviour
    evt.preventDefault();
    var title =$("#title").val();
        var authorities = $("#selection").val();
        var edition =$("#edition").val();
    var response = new Object();
    response.title = title;
    response.authorities = authorities;
    response.edition = edition;
    var stringed = JSON.stringify(response);
    alert(stringed);
  });
});

Si prueba este código, generará la cadena " stringed " como desee

Espero que esto sea útil

Angelo

0
Angelo Immediata 13 dic. 2016 a las 14:32