login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Loading bar blijft maar lopen

Offline Ultimatum - 05/05/2008 23:55
Avatar van UltimatumPHP expert Ik heb een captcha gemaakt, en als je op het plaatje klikt dan zie je eerst een loading bar en daarna de nieuwe image. Maar als je een paar keer op de image klikt, dan blijft de loading bar maar lopen. Dat is dus niet echt de bedoeling .

Dit is mijn javascript:
  1. function reloadCaptcha(hash) {
  2.  
  3. var captchaImage = document.getElementById('captcha').src;
  4. document.getElementById('captcha').src = './template/images/icons/ajax-loader.gif'
  5. setTimeout(function() {
  6. document.getElementById('captcha').src = captchaImage + '?hash=' + hash
  7. }, 1000);
  8.  
  9. }


Dit is mijn captcha.php
  1. <?php
  2. include_once 'class.captcha.php';
  3.  
  4. $captcha = new Captcha();
  5. $captcha->loadCaptcha('../../template/images/captcha');
  6. ?>


En zo roep ik de image aan:
  1. <img src="./modules/captcha/captcha.php" id="captcha" onclick="reloadCaptcha(<?= rand(0, 5000); ?>)" />


Heeft iemand enig idee hoe ik dit probleem moet oplossen, moet ik een check ofzo inbouwen?

5 antwoorden

Gesponsorde links
Offline Stijn - 06/05/2008 01:45
Avatar van Stijn PHP expert
  1. function reloadCaptcha(hash) {
  2.  
  3. document.getElementById('....').removeEventListener('click' , reloadCaptcha(?= rand(0, 5000); ?>) , false);
  4.  
  5. var captchaImage = document.getElementById('captcha').src;
  6. document.getElementById('captcha').src = './template/images/icons/ajax-loader.gif'
  7. setTimeout(function() {
  8. document.getElementById('captcha').src = captchaImage + '?hash=' + hash
  9. }, 1000);
  10.  
  11. document.getElementById('....').addEventListener('click' , reloadCaptcha(?= rand(0, 5000); ?>) , false);
  12.  
  13. }
  14.  
  15. document.getElementById('....').addEventListener('click' , reloadCaptcha(?= rand(0, 5000); ?>) , false);


Zoiets moet het zijn.
Offline Ultimatum - 07/05/2008 04:04
Avatar van Ultimatum PHP expert Oke, bedankt. Maar wrm is regel 11 en 15 gelijk en staat regel 15 buiten de functie?
Offline Stijn - 07/05/2008 09:01
Avatar van Stijn PHP expert Bij het laden van de pagina wordt er een event aangemaakt. Als je dan die event uitvoert, laat ik die eerst verwijderen zodat de gebruiker geen 2,3,... keer opnieuw kan klikken. Wanneer de code is uitgevoerd, maak ik opnieuw dit event aan zodat de gebruiker opnieuw kan klikken.
Offline timmie_loots - 07/05/2008 13:46
Avatar van timmie_loots PHP gevorderde Volgens mij kloppen je PHP shorttags niet helemaal stijn1989. Bovendien is het niet echt handig om die notering te gebruiken, om de portabiliteit van je script te behouden kun je beter <?php echo rand(0,5000); ?> doen.
Offline Ultimatum - 07/05/2008 15:29 (laatste wijziging 07/05/2008 15:30)
Avatar van Ultimatum PHP expert En waar moet ik dan die regel 15 neerzetten? Gewoon bovenaan in mijn head van de index ofzo? Of moet hij ergens anders staan. Want als ik die regel in die head zet, dan geeft firebug deze error:
Citaat:
document.getElementById("captcha") has no properties

En als ik daarna op mijn captcha druk krijg ik deze error erbij:
Citaat:
too much recursion


Geen idee hoe ik dit moet oplossen..
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.188s