JavaScript слишком много рекурсии? - PullRequest
4 голосов
/ 03 марта 2010

Я пытаюсь создать скрипт, который автоматически начинает загрузку после ввода данных в базу данных (мне нужен автоматический идентификатор, который база данных использует для загрузки файла).

Когда я запускаю javascript, сценарии запускают файл php, но он не может вызвать другой php для загрузки файла.

too much recursion
setTimeout(testIfToegevoegd(),500); 

скрипт, выдающий ошибку

send("/projects/backend/nieuwDeeltaak.php",'deeltaakNaam='+f.deeltaaknaam.value+'&beschrijving='+
                        f.beschrijving.value+'&startDatum='+f.startDatum.value+'&eindDatum='+f.eindDatum.value
                        +'&deeltaakLeider='+f.leiderID.value+'&projectID='+f.projectID.value,id);

                    function testIfToegevoegd(){

                        if(document.getElementById('resultaat').innerHTML == "<b>De deeltaak werd toegevoegd</b>"){
                            //stop met testen + upload file 

                            document.getElementById('nieuwDeeltaak').target = 'upload_target';
                            document.forms["nieuwDeeltaak"].submit()
                        }else{
                            setTimeout(testIfToegevoegd(),500);
                        }

                    }

                    testIfToegevoegd();

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

когда я нажимаю кнопку, которая вызывает все это во второй раз (после ошибки), она работает нормально.

1 Ответ

18 голосов
/ 03 марта 2010
setTimeout(testIfToegevoegd(),500);

должно быть

 setTimeout(testIfToegevoegd,500);

Вы должны передать саму функцию, а не ее результат

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