如何将2d数组javascript坐标发送到mysql?

如何将2d数组javascript坐标发送到mysql?,javascript,php,jquery,mysql,mapbox-gl-js,Javascript,Php,Jquery,Mysql,Mapbox Gl Js,我创建了一个二维数组来存储坐标(经度、纬度) 最后,我尝试将数组中的每个坐标发送到数据库,其中包含Id、Lon和Lat,但它只发送一个坐标 $("#vol").click(function(e) //envoyer tous les coords vers bdd { for (var i = 0 ; i < nbPoints; i++) { posLon = gps[i][0]; posLat = gps[i][1];

我创建了一个二维数组来存储坐标(经度、纬度)

最后,我尝试将数组中的每个坐标发送到数据库,其中包含Id、Lon和Lat,但它只发送一个坐标

$("#vol").click(function(e) //envoyer tous les coords vers bdd
  {
       for (var i = 0 ; i < nbPoints; i++) {

           posLon = gps[i][0];  
           posLat = gps[i][1];

        console.log("parcours: "+gps[i][0]+ " " +gps[i][1]);
    }

    $.ajax({
        type: "POST",
        url: "table.php",
        data: {
            'lon' : posLon,
            'lat' : posLat 
            },
        success: function(){
            console.log("OK");
        }
      });

  });
$(“#vol”)。单击(函数(e)//特使tous les coords vers bdd
{
对于(变量i=0;i
这是我的PHP代码

<?php 

    $conn = mysqli_connect('localhost', 'root', '' , 'api');

    if (!$conn) 
   {

      die("Connection failed: ".mysqli_connect_error());

   }

     $lon = $_POST['lon'];
     $lat = $_POST['lat']; 

     $sql = "INSERT INTO coordonnes (lng, lat) VALUES('".$lon."','".$lat."')";
     if($conn->query($sql)) 
     {
       echo "Donnes Enregistrer";
     }
     else
     {
       echo $conn->error;
     }

 ?>

在您的
for(var i=0;i
中,每次迭代都会覆盖
posLon
posLat
(最后一次获胜)。如果将ajax代码放入for loop中,您的代码可能会按预期工作。但这不是一个好的做法,因为它会调用ajax no of times=nbPoints。相反,您可以通过ajax发送整个gps对象,并相应地调整服务器端代码(以进行批量插入)。
$("#vol").click(function(e) //envoyer tous les coords vers bdd
  {
       for (var i = 0 ; i < nbPoints; i++) {

           posLon = gps[i][0];  
           posLat = gps[i][1];

        console.log("parcours: "+gps[i][0]+ " " +gps[i][1]);
    }

    $.ajax({
        type: "POST",
        url: "table.php",
        data: {
            'lon' : posLon,
            'lat' : posLat 
            },
        success: function(){
            console.log("OK");
        }
      });

  });
<?php 

    $conn = mysqli_connect('localhost', 'root', '' , 'api');

    if (!$conn) 
   {

      die("Connection failed: ".mysqli_connect_error());

   }

     $lon = $_POST['lon'];
     $lat = $_POST['lat']; 

     $sql = "INSERT INTO coordonnes (lng, lat) VALUES('".$lon."','".$lat."')";
     if($conn->query($sql)) 
     {
       echo "Donnes Enregistrer";
     }
     else
     {
       echo $conn->error;
     }

 ?>