使用Ajax将数组发送到PHP脚本

2022-08-30 10:08:44

我有由函数.push制作的数组。在数组中是非常大的数据。如何最好地将其发送到PHP脚本?

   dataString = ??? ; // array?
   $.ajax({
        type: "POST",
        url: "script.php",
        data: dataString, 
        cache: false,

        success: function(){
            alert("OK");
        }
    });

脚本.php:

  $data = $_POST['data'];

  // here i would like use foreach:

  foreach($data as $d){
     echo $d;
  }

最好的方法是什么?


答案 1

将数据字符串编码为 JSON。

dataString = ??? ; // array?
var jsonString = JSON.stringify(dataString);
   $.ajax({
        type: "POST",
        url: "script.php",
        data: {data : jsonString}, 
        cache: false,

        success: function(){
            alert("OK");
        }
    });

在您的 PHP 中

$data = json_decode(stripslashes($_POST['data']));

  // here i would like use foreach:

  foreach($data as $d){
     echo $d;
  }

注意

当您通过 POST 发送数据时,它需要作为键值对。

因此

data: dataString

是错误的。相反,请做:

data: {data:dataString}


答案 2
 dataString = [];
   $.ajax({
        type: "POST",
        url: "script.php",
        data:{data: $(dataString).serializeArray()}, 
        cache: false,

        success: function(){
            alert("OK");
        }
    });

http://api.jquery.com/serializeArray/