2016-08-11 156 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