Войти

Показать полную графическую версию : Конфликт в JavaScript. Помогите разобраться, запустить.


blacks2
21-12-2009, 15:04
Здравствуйте!

Подключил на сайт Яндекс.Метрику.
На страницах возник конфликт который приводит к 405 ошибке.
Поддержка Яндекса ответила: "Это проблема на стороне сервера, не связанная с кодом Метрики."
И добавила ссылку по которой я ничего не понял http://sysadmins.ru/topic53492.html

Решил обратиться к вам за помощью, советом:


Есть страничка прайса в которой посетитель сайта должен нажать на кнопку
чтоб пересчитать прайс (изменения цифр в табличках)

В качестве цели добавил нажатие кнопки
БЫЛО: <input type="submit" value="Пересчитать" />
СТАЛО: <input type="submit" value="Пересчитать" onclick="yaCounter111111.reachGoal('price_calculate'); return true;" />

В результате после нажатия на кнопку выдается 405 ошибка
Method Not Allowed
The requested method POST is not allowed for the URL /price2.html.

Если нужно пример стр "без метрики" и "с метрикой" могу скинуть в личку.
Ниже привожу текст кода javascript который отвечает за кнопку/изменение цифр

Всем откликнувшимся заранее большое спасибо!

<script type="text/javascript">
var currIer = 1;
function revalue(ierStr, col, tblClass) {
var allTables = document.getElementsByTagName("table");
var tbls = new Array(); /* массив таблиц с классом tblClass */
for (var i = 0; i < allTables.length; i++) {
if (allTables[i].className == tblClass) tbls.push(allTables[i]);
}
var ier = parseFloat(ierStr);
var newValue = 0;
for (var j = 0; j < tbls.length; j++) {
for (var i = 1; i < tbls[j].rows.length; i++) {
if (tbls[j].rows[i].cells[col+1].className == "protected") continue;
newValue = parseFloat(tbls[j].rows[i].cells[col+1].innerHTML) * ier / currIer;
tbls[j].rows[i].cells[col+1].innerHTML = newValue.toFixed(2);
tbls[j].rows[i].cells[col].innerHTML = (newValue * 1.1).toFixed(2);
}
}
currIer = ier;

/* во все поля ier заносим новое значение множителя... */
var allForms = document.getElementsByTagName("form");
for (var i = 0; i < allForms.length; i++) allForms[i].ier.value = ierStr;
return false;
}
</script>

dmitryst
21-12-2009, 15:37
Method Not Allowed
The requested method POST is not allowed for the URL /price2.html. »
В форме, где у вас кнопец, должно быто что-то типа <form method="GET" бла-бла-бла>

blacks2
21-12-2009, 15:49
В форме, где у вас кнопец, должно быто что-то типа <form method="GET" бла-бла-бла> »

Посмотрел что у меня там стоит :)
<form action="#" method="post" onsubmit="return revalue(this.ier.value, 4, 'costs');">
если я переведу метод на GET это не будет плохо?

dmitryst
21-12-2009, 15:51
это не будет плохо? »
во всяком случае, должно заработать

Sham
21-12-2009, 16:16
Method Not Allowed
The requested method POST is not allowed for the URL /price2.html. »
на сервере где-то запрет на POST для html-файлов (например в секции <Limit> apache), и если /price2.html правильный скрипт, то проблема на сервере.

blacks2
21-12-2009, 17:22
прописал GET
результат: идет пересчет прайса, рефреш странички и скрол ее на начало :(
:durak:




© OSzone.net 2001-2012