如何将简单数组传递给ajax请求?

时间:2016-08-11 13:48:30

标签: jquery arrays json ajax

我有以下代码:

$("form").submit(function(e) {
      e.preventDefault();
      var ris = new Array();
      for (var j = 0; j <= i; j++)
        ris[j] = [($("[name=ris" + j + "]").val())];
      $.ajax({
        url: "crea_sondaggio.php",
        type: "POST",
        data: JSON.stringify({
          ris: ris
        }),
      });
    });

使用此数组:

var ris = new Array();
      for (var j = 0; j <= i; j++)
        ris[j] = [($("[name=ris" + j + "]").val())];

我想将它发送给Ajax。是不是:

data: JSON.stringify({
      ris: ris
    }),

我该如何解决?

更新

JS / PHP

<form action="crea_sondaggio.php" method="post">
     ...other code here....
</form>
$("form").submit(function(e) {
                var ris = new Array();
                for (var j=0; j<=i; j++) 
                    ris[j] = [($("[name=ris"+j+"]").val())];
                $.ajax({
                    url: "crea_sondaggio.php",
                    type: "POST", 
                    data: {ris: JSON.stringify(ris)},
                    dataType: "html",
                    success: function() {
                        alert("OK");
                    },
                    error: function(err, msg) {
                        alert ("Chiamata fallita " + msg);
                    }
                });
            });

crea_sondaggio.php

$ris = $_POST['ris'];
echo $ris; 

但是页面crea_sondaggio.php是空的,它不会出现输出$ ris。我该如何解决?

1 个答案:

答案 0 :(得分:1)

要保存数组中输入文本框的所有值,请使用以下代码。

$(document).ready(function() {
    var ris = new Array();
    $("input[name^='ris']").each(function() {
        ris.push($(this).val());
    });
});

JSON.stringify for array并在请求参数中传递它。

data: {
  ris: JSON.stringify(ris)
},