2015-11-16 96 views
0

如何將循環中的變量傳遞給使用AJAX的PHP文件?使用ajax將JavaScript循環變量傳遞給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); 
}); 

現在該怎麼辦?

+0

'for(var j = i + 1; j <= i + 1; j ++)'這是什麼 – Ramanlfc

+0

如何在最初填充數組? – RamRaider

+0

它從陣列中獲得緯度。陣列包括拉特和長。 1st loop獲取lat,第二個loop獲取經度。 –

回答

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); 
    }); 
} 
+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); 
} 
+0

謝謝你的幫助。 –