Показать сообщение отдельно
  #35 (permalink)  
Старый 13.06.2015, 15:05
Аспирант
Отправить личное сообщение для Dark19 Посмотреть профиль Найти все сообщения от Dark19
 
Регистрация: 29.04.2014
Сообщений: 82

рони,
и все таки нужна Ваша помощь. Есть перебор точек по условию и нужно когда все точки уже перебрались, передать обьект в 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;
                                    }
Ответить с цитированием