JavaScript автоматически отправить результат в цикле - PullRequest
1 голос
/ 06 апреля 2019

Страница php (назовем ее page_one) проверяет определенные значения в БД и отображает различные вопросы на экране в зависимости от этих значений. Пользователь устанавливает несколько радиомодулей и нажимает кнопку «Отправить». Код отправляет значения радио в другой php-файл (назовем его page_two), где они записываются в БД, а затем код помещает новые значения в скрытые поля скрытой формы и отправляет их снова, загружая page_one, где представлены новые вопросы. И так до тех пор, пока не закончится набор вопросов.

Для автоматической отправки в page_one я использую следующий javascript внутри php-файла page_two.

<script>
var auto_refresh = setInterval(function() { submitform(); }, 50);

function submitform()
{
    /*alert('test');*/
    document.getElementById("hidden-form").submit();
}
</script>

В Firefox (Mac) и Safari (Mac) и iOS (Safari) все идет хорошо: page_two записывает значения в БД и вызывает back_one.

Вместо того, чтобы делать то же самое, Chrome входит в цикл и продолжает вызывать page_two каждые 50 мс, тысячи раз, пока что-то не сломается.

Любая помощь?

1 Ответ

3 голосов
/ 06 апреля 2019

Вот для чего setInterval сделано .. оно будет запускаться каждые 50 миль и отправлять форму .. если вам нужно ее вызвать один раз, используйте setTimeout.

Метод setInterval () вызывает функцию или вычисляет выражение через определенные промежутки времени (в миллисекундах). Метод setInterval () будет продолжать вызывать функцию до вызова clearInterval () или окно закрыто.

ссылка: setInterval

Метод setTimeout () вызывает функцию или вычисляет выражение после указанного количества миллисекунд.

ссылка: setTimeout

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...