2016-08-11 163 views
-2

我有下面的代码:如何将简单数组传递给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())]; 

,我想将它传送给阿贾克斯。是不是:

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

我该如何解决?

UPDATE

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。我该如何解决?

+0

那么,怎么了?您可以将数组字符串化并使用ajax发送它... – Justinas

+0

您正在从输入类型='文本'中获取值? –

+0

这两种方式都是正确的。如果你设置了正确的内容类型,情况会更好。在第一种情况下,您正在错误地访问php中的数据。 –

回答

1

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

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

JSON.stringify数组并将其传递给请求参数。

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

它不起作用。在我的php代码中,我写了'$ ris = $ _POST ['ris']; echo $ ris;'但页面是空的。 – Fabio97

+0

在ris数组中推送值之后,请您在ajax调用之前检查console.log(ris)。 –

+0

我重新编写了我的代码,现在它可以工作,因为它使ajax中的成功函数的警报成功。但它不会在PHP页面中使用ris的值。我该如何解决? – Fabio97