Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Конфликт в JavaScript. Помогите разобраться, запустить. (http://forum.oszone.net/showthread.php?t=160999)

blacks2 21-12-2009 15:04 1300763

Конфликт в JavaScript. Помогите разобраться, запустить.
 
Здравствуйте!

Подключил на сайт Яндекс.Метрику.
На страницах возник конфликт который приводит к 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 1300787

Цитата:

Цитата blacks2
Method Not Allowed
The requested method POST is not allowed for the URL /price2.html. »

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

blacks2 21-12-2009 15:49 1300796

Цитата:

Цитата dmitryst
В форме, где у вас кнопец, должно быто что-то типа <form method="GET" бла-бла-бла> »

Посмотрел что у меня там стоит :)
Код:

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

dmitryst 21-12-2009 15:51 1300800

Цитата:

Цитата blacks2
это не будет плохо? »

во всяком случае, должно заработать

Sham 21-12-2009 16:16 1300819

Цитата:

Цитата blacks2
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 1300888

прописал GET
результат: идет пересчет прайса, рефреш странички и скрол ее на начало :(
:durak:


Время: 21:27.

Время: 21:27.
© OSzone.net 2001-