Chrome jquery результаты в разброс?

12
vlad00777
На сайте с 24.12.2009
Offline
119
865

Добрый день. Не могу понять что делаю не так.

Ситуация такая: есть скрипт который посылает ajax запрос в Google maps api, посылка данных происходит, ответ получаю. Дальше мне нужно обработать ответ, что собственно я и делаю. Далее нужно занести результат в блок и вот тут начинается интересное.

Лиса обрабатывает и помещает результат в нужный блок, Chrome же когда как, раз правильно и раз не правильно т.е меняются местами результаты.

Уже все проверил, через алерт выводит все правильно. Заметил что если алерт окошко закрывать быстро, то происходит разброс, если же медленно, то все окей. Задержку может где нужно поставить подскажите, вот сам код:

<script>
$(document).ready(function() {
ww=0;
$.ajax({
url: 'http://maps.googleapis.com/maps/api/distancematrix/json',
dataType: 'json',
data: "origins=<?php echo $_COOKIE['gorod']; ?>&destinations=<?php echo $math->city ?>&mode=driving&language=ru-RU&sensor=false",
success: function(data){ console.log(data); var math = new Array();

for (i = 0; i < data.rows.length; i++) {
ww=ww+1;
math = (data.rows.elements.distance.value);
km = Math.round(math/1000);

var kil = km + 150;
var stoim = (kil * 2 * 12)/49 + 50;
var stoimlch = (kil * 2 * 15)/48 + 200;
var stoimle = (kil * 2 * 15)/48 + 100;
stoim = Math.round(stoim);
stoimlch = Math.round(stoimlch);
stoimle = Math.round(stoimle);

alert("#t"+ww);
alert(stoimlch);
alert(stoimle);

if ('<?php echo $attr[math] ?>'==='le') { $("#t"+ww).html(stoimle);}
if ('<?php echo $attr[math] ?>'==='lch') { $("#t"+ww).html(stoimlch)};
if ('<?php echo $attr[math] ?>'==='ukr') { $("#t"+ww).html(stoim)};
if ('<?php echo $attr[math] ?>'==='all') { $("#t"+ww).html(stoim)};
}

}
});
});
</script>

Спасибо!

Верстка. Качественно! Адаптивная, резиновая, с параллаксом и прочими плюшками. В ЛС.
[Удален]
#1

vlad00777, выносите вставку данных в отдельную функцию, в которую будите передавать из цикла что вставить и куда именно :)

либо используйте each для обработки массива

vlad00777
На сайте с 24.12.2009
Offline
119
#2

burunduk, Спасибо.

Но все равно в функцию передается в разброс vstavka("<?php echo $attr[math] ?>"); в функции делаю function vstavka(chemp) { alert (chemp);} Один появляется одно, обновляю - другое, потом опять меняются местами.

Значит ли это что проблема именно в php?

SK
На сайте с 31.08.2007
Offline
81
#3

вообще замените это извращение на чтото проще

if ('<?php echo $attr[math] ?>'==='le') { $("#t"+ww).html(stoimle);}

if ('<?php echo $attr[math] ?>'==='lch') { $("#t"+ww).html(stoimlch)};

if ('<?php echo $attr[math] ?>'==='ukr') { $("#t"+ww).html(stoim)};

if ('<?php echo $attr[math] ?>'==='all') { $("#t"+ww).html(stoim)};

var some = '<?php echo $attr[math] ?>';

if (some==='le') { $("#t"+ww).html(stoimle);}

else if (some==='lch') { $("#t"+ww).html(stoimlch)};

else if (some==='ukr') { $("#t"+ww).html(stoim)};

else if (some==='all') { $("#t"+ww).html(stoim)};

вообще не видя html кодав странички тоже сложно понять до конца как и почему оно тупит. но скорее всего хром как-то кидает всё в несколько потоков и путает всё

Нужен перенос информации? Информеры на сайт? Сграбить контент? Создать базу товаров? Изготовление любых парсеров! (/ru/forum/836197)
[Удален]
#4

vlad00777, скорей всего там проблема с видимостью переменных

смотрите здесь всё работает правильно http://www.unmedia.ru/novosti.html

здесь результаты на странице меняются местами http://www.unmedia.ru/portfolio-site.html

что бы проще разобраться используйте вариант с шаблона страница produkt.html ("товары")

vlad00777
На сайте с 24.12.2009
Offline
119
#5

Silent_Kill, это часть функционала моего плагина для вордпресса.

echo "<td>$math->chemp</td>";?> //ВСЕГДА правильное.
<script>
ww=0;
$.ajax({
url: 'http://maps.googleapis.com/maps/api/distancematrix/json',
dataType: 'json',
data: "origins=<?php echo $_COOKIE['gorod']; ?>&destinations=<?php echo $math->city ?>&mode=driving&language=ru-RU&sensor=false",
success: function(data){ console.log(data); var math = new Array();

vstavka("<?php echo $math->chemp ?>");

}
});

function vstavka(chemp) {
alert (chemp);
}


</script>

Странная штука, $math->chemp - нужное значение.

Вверху, где эхо - оно правильное, а в функции уже не верное, опять же иногда, а иногда правильное.

дани мапов
На сайте с 06.09.2012
Offline
204
#6

А если первой строкой так,

echo "<td>".$math->chemp."</td>";

изменится результат?

Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
vlad00777
На сайте с 24.12.2009
Offline
119
#7

дани мапов, всеравно правильно показывает всегда.

[Удален]
#8
vlad00777:
Странная штука, $math->chemp - нужное значение.
Вверху, где эхо - оно правильное, а в функции уже не верное, опять же иногда, а иногда правильное.

это проблемы с видимостью переменных, в php я лох полный, а вот в js что бы обойти эти проблемы надо использовать "замыкания"

дани мапов
На сайте с 06.09.2012
Offline
204
#9

Если я правильно понял, тогда так


$math_chemp = $math->chemp;
echo "<td>$math_chemp</td>";?> //ВСЕГДА правильное.
<script>
ww=0;
$.ajax({
url: 'http://maps.googleapis.com/maps/api/distancematrix/json',
dataType: 'json',
data: "origins=<?php echo $_COOKIE['gorod']; ?>&destinations=<?php echo $math->city ?>&mode=driving&language=ru-RU&sensor=false",
success: function(data){ console.log(data); var math = new Array();

vstavka("<?php echo $math_chemp ?>");

}
});

function vstavka(chemp) {
alert (chemp);
}


</script>
C
На сайте с 04.02.2005
Offline
291
#10

несколько раз прочитал, а что неправильного?

Пример не кода, а пример ответа от сервера.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий