рони,
и все таки нужна Ваша помощь. Есть перебор точек по условию и нужно когда все точки уже перебрались, передать обьект в php. Я вроде бы логично делаю: проверяю если первый и второй цикл дошел до конца присваиваю переменной единицу
if ((e==points.length-1) && (f==points.length-1))
d=1;
а в самом цикле проверяю если переменная == 1, то посылаю данные
if(d==1){
console.log(pointsDistance);
$.ajax({
type: "POST",
url: "http://geotest/ajax.php",
data: { centerDist:centerDistance,pointDist:pointsDistance },
success: function(msg){
$("#result").empty();
$("#result").append(msg);
}
});
}
});
, но оно доходит до конца циклов и еще посылает кучу раз эти данные. Как сделать чтобы дошло до окончания перебора и один раз переслало обьект?
Вот весь кусок:
var pointsDistance = [],d=0;
for(m=0;m<points.length;m++){
//console.log(pointsDistance);
for(n=0;n<points.length;n++){
(function(e, f) {
//проверяем ровняется ли центр первой точки с любой другой и не равна ли эта точка себе же и больше ли у нее идентификатор чем у найденой
if((centerDistance[e]['center']==centerDistance[f]['center']) && (centerDistance[e]['point']!=centerDistance[f]['point'])
&&(centerDistance[e]['name']>centerDistance[f]['name']) ){
//рассчитываем растояние между найдеными точками одной зоны
ymaps.route([centerDistance[e]['point'], centerDistance[f]['point']]).then(function(router) {
var dist = Math.round(router.getLength() / 1000);
pointsDistance [e]= {
name: centerDistance[e]['name'] + centerDistance[f]['name'],
distance: dist,
center: centerDistance[e]['center'],
kmwin: centerDistance[e]['dist'] + centerDistance[f]['dist'] - dist
};
var route = router.getPaths();
route.options.set({ strokeWidth: 3, strokeColor: centerDistance[f]['color'], opacity: 0.5 });
myMap.geoObjects.add(route);
console.log(d);
if(d==1){
console.log(pointsDistance);
$.ajax({
type: "POST",
url: "http://geotest/ajax.php",
data: { centerDist:centerDistance,pointDist:pointsDistance },
success: function(msg){
$("#result").empty();
$("#result").append(msg);
}
});
}
});
}
console.log(e,f);
if ((e==points.length-1) && (f==points.length-1))
d=1;
})(m, n)
}
n=0;
}