使用ajax将javascript循环变量传递给php

时间:2015-11-16 14:10:45

标签: javascript php jquery ajax

如何使用AJAX将循环中的变量传递给PHP文件?

var lat;
var lng;
var array = [ 22.399602, 114.041176, 22.344043, 114.0168, 22.327529, 114.087181 ];
console.log(array);
for (var i = 0; i < 6; i += 2) {
    lat = array[i];
    console.log("lat" + i + "=" + lat);
    for(var j = i + 1; j <= i + 1; j++) {
        lng = array[j];
        console.log("lng" + j + "=" + lng);
    }
}

我的阵列在这里:

enter image description here

在这种情况下,我希望将每个latlong传递给我的数据库。我的数据库将如下所示:

username: Neo
lat=22.399602
long=114.041176
lat=22.344043
long=114.0168
lat=22.327529
long=114.087181

我也测试了这个AJAX函数,但它不适用于数组。

$.post('send.php', { latitude: lat, longitude: lng }, function(data) {
    $('#result').html(data);
});

我现在该怎么办?

2 个答案:

答案 0 :(得分:0)

如果您以更合理的方式构建初始数组,问题对您来说会更简单。考虑:

function sendlatlng(lat,lng){
    var http=new XMLHttpRequest();
    http.onreadystatechange=function(){
        if( http.readyState==4 && http.status==200 ) console.info( http.response );
    };
    var headers={
        'Content-type': 'application/x-www-form-urlencoded'
    };
    http.open('POST', '/send.php', true );
    for( header in headers ) http.setRequestHeader( header, headers[ header ] );
    http.send( 'lat='+lat+'&lng='+lng );
}



var array = [ [22.399602, 114.041176], [22.344043, 114.0168], [22.327529, 114.087181] ];

for( i=0; i < array.length; i++ ){
    lat=array[ i ][ 0 ];
    lng=array[ i ][ 1 ]
    console.log( 'lat: %s lng: %s',lat,lng );
    sendlatlng.call( this, lat, lng );
}

答案 1 :(得分:0)

如果您确定array将一个接一个地包含纬度和经度,那么您不需要嵌套循环。

var lat;
var lng;
var array = [22.399602,114.041176 , 22.344043,114.0168 , 22.327529,114.087181];
//console.log(array);
for(var i=0;i<array.length;i+=2)
{
    lat=array[i];
    long = array[i+1];
    console.log(lat+"    "+long);
    $.post('send.php', {latitude:lat, longitude:long}, 
    function(data)
    {
        $('#result').html(data);
    });
}