Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ajax将javascript数组发送到php_Javascript_Php_Arrays_Ajax - Fatal编程技术网

使用ajax将javascript数组发送到php

使用ajax将javascript数组发送到php,javascript,php,arrays,ajax,Javascript,Php,Arrays,Ajax,如何将javascript数组发送到php? 我已经使用JSON.stringify访问了每个javascript数组,并使用JSON_decode捕获该数组,但仍然不起作用 我不知道该怎么做了。有什么建议吗 在JS中: jarak = new Array(koordinat_kapal_threat.length); for (var i = 0; i < jarak.length; i++) { jarak[i] = new Array(koordinat_kapal_t

如何将javascript数组发送到php? 我已经使用JSON.stringify访问了每个javascript数组,并使用JSON_decode捕获该数组,但仍然不起作用

我不知道该怎么做了。有什么建议吗

在JS中:

 jarak = new Array(koordinat_kapal_threat.length);
 for (var i = 0; i < jarak.length; i++) {
     jarak[i] = new Array(koordinat_kapal_threat.length);
     for (var j = 0; j < jarak.length; j++) {
         if (i === j) {
             jarak[i][j] = 0;
         } else {
             var distance = getDistance(koordinat_kapal_threat[i], koordinat_kapal_threat[j]);
             jarak[i][j] = distance;
         }
     }
 }

 // buat array visibilitas
 visibilitas = new Array(koordinat_kapal_threat.length);
 for (var i = 0; i < visibilitas.length; i++) {
     visibilitas[i] = new Array(koordinat_kapal_threat.length);
     for (var j = 0; j < visibilitas.length; j++) {
         if (i === j) {
             visibilitas[i][j] = 0;
         } else {
             var visibilitas_kapal = 1 / jarak[i][j];
             visibilitas[i][j] = visibilitas_kapal;
         }
     }
 }

 var tau = 0.01;
 // buat array feromon
 feromon = new Array(koordinat_kapal_threat.length);
 for (var i = 0; i < feromon.length; i++) {
     feromon[i] = new Array(koordinat_kapal_threat.length);
     for (var j = 0; j < feromon.length; j++) {
         feromon[i][j] = tau;
     }
 }

 var banyak_semut = koordinat_kapal_threat.length;

 var a = JSON.stringify(koordinat_kapal_threat);
 var b = JSON.stringify(jarak);
 var c = JSON.stringify(visibilitas);
 var d = JSON.stringify(feromon);

 var data = {
     koordinat_kapal_threat: a,
     jarak: b,
     visibilitas: c,
     feromon: d,
     banyak_semut: banyak_semut
 };




 $.ajax({
     type: "POST",
     dataType: "json",
     url: "algoritmaAnt.php",
     data: data,
     success: function (result) {
         var data = JSON.parse(result.responseText);
         var jalur = new google.maps.Polyline({
             path: data,
             geodesic: true,
             strokeColor: '#FCFF49', strokeOpacity: 1.0,
             strokeWeight: 2,
         });
         jalur.setMap(map);
     }
 });
这是一种简单的方法,您需要使用JSON.stringify将数据编码为JSON,类似地,使用JSON_decode提取数据

JavaScript var a=JSON.stringify(您的数组名称); var b=JSON.stringify(jarak);//你的阵列

// Ajax Call
$.ajax({
     type: "POST",
     dataType: "json",
     async:true,
     url: "algoritmaAnt.php",
     data: {'data1':a,'data2':b},
     success: function (result) {
             // your success operation;
      }
});
PHP代码

$jarak = json_decode($_POST['data1']);
$data2 = json_decode($_POST['data2']);

print_r($jarak); 
print_r($data2);

不需要对数组进行字符串化。如下所示更改您的数据变量

var data = {
     koordinat_kapal_threat: koordinat_kapal_threat,
     jarak: jarak,
     visibilitas: visibilitas,
     feromon: feromon,
     banyak_semut: banyak_semut
 };

如果你不提供相关的代码以及一些关于你想发送什么数组的解释,我们不可能知道为什么有些东西不起作用。你是使用jQuery还是发送和获取数据…?我已经更新了我的问题@charlietflNot jQuery bro@arunawarnasooriya实际上根本不需要转换为json,也不需要从json解码
var data={property_1:[1,4,5]}
可以在
$\u POST['property_1]
中作为数组接收。我如何发送我在示例中给出的多个数组?根据您的需要编辑,在ajax中调用数据也使用JSON方法,因此您可以使用分隔符在ajax中追加数据,如何捕获结果?我的例子是真的还是错的?
var data = {
     koordinat_kapal_threat: koordinat_kapal_threat,
     jarak: jarak,
     visibilitas: visibilitas,
     feromon: feromon,
     banyak_semut: banyak_semut
 };