如何使用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);
}
}
我的阵列在这里:
在这种情况下,我希望将每个lat
和long
传递给我的数据库。我的数据库将如下所示:
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);
});
我现在该怎么办?
答案 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);
});
}