login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[Opgelost] Problemen switch functie.

Offline mike87 - 10/01/2007 12:19 (laatste wijziging 10/01/2007 14:20)
Avatar van mike87Nieuw lid Deze onderstaande SWITCH functie werkt niet.
En het is me een totaal chinees raadsel, waarom het niet werkt.
Want ik krijg geen foutmeldingen op de code, zowel niet met FireBug als met de foutenconsole van FF.

De code:
  1. Output = HttpObject.responseText;
  2. Result = Output.split('::');
  3.  
  4. alert(Output);
  5. alert(Result[0]);
  6.  
  7. switch ( Result[0] )
  8. {
  9. case 100:
  10. Message('Fout', 'U heeft geen gebruikersnaam ingevuld.', 4, true);
  11. break;
  12. case 101:
  13. Message('Fout', 'U heeft geen wachtwoord ingevuld.', 4, true);
  14. break;
  15. case 200:
  16. Message('Fout', 'Uw gebruikersnaam en/of wachtwoorden bleken niet juist te zijn!', 4, true);
  17. break;
  18. case 300:
  19. Message('Welkom' + Result[1], 'U bent succesvol ingelogd en wordt nu doorgestuurd...', 3, false);
  20. setTimeout("Redirect('index.php')",2800);
  21. break;
  22. }


Er staan 2 alerts in. Deze had ik erin gezet ter controle van de vars en ze komen allebei met inhoud te voorschijn maar me switch-functie pakt ze gewoon niet.
Ook heb ik het met een if-else geprobeerd en ook deze deed er niets meer mee.
Ik heb het ook al met de quote's in de switch geprobeerd, maar leverde ook niets op.

Wie ziet wat er hier fout gaat?

8 antwoorden

Gesponsorde links
Offline Kr4nKz1n - 10/01/2007 12:24
Avatar van Kr4nKz1n Onbekend
  1. <? Kleur
  2.  
  3. Output = HttpObject.responseText;
  4. Result = Output.split('::');
  5.  
  6. alert(Output);
  7. alert(Result[0]);
  8.  
  9. switch ( Result[0] )
  10. {
  11. case 100:
  12. Message('Fout', 'U heeft geen gebruikersnaam ingevuld.', 4, true);
  13. break
  14. case 101:
  15. Message('Fout', 'U heeft geen wachtwoord ingevuld.', 4, true);
  16. break
  17. case 200:
  18. Message('Fout', 'Uw gebruikersnaam en/of wachtwoorden bleken niet juist te zijn!', 4, true);
  19. break
  20. case 300:
  21. Message('Welkom' + Result[1], 'U bent succesvol ingelogd en wordt nu doorgestuurd...', 3, false);
  22. setTimeout("Redirect('index.php')",2800);
  23. break
  24. }

1 probleem al opgelost. Hopen dat hij nu werkt.
Offline mike87 - 10/01/2007 13:01
Avatar van mike87 Nieuw lid Nee nog niets.
Aan de functie 'Message()' ligt het ook niet.
Ik heb het nu ook voor de zekerheid gecontroleerd om deze buiten me switch aan te roepen (na de alerts) en dan verschijnt deze ook gewoon.
Offline Kr4nKz1n - 10/01/2007 13:07
Avatar van Kr4nKz1n Onbekend
  1. <? Kleur
  2. switch ( Result[0] )
  3. {
  4. case 100:
  5. Message('Fout', 'U heeft geen gebruikersnaam ingevuld.', 4, true);
  6. break
  7. case 101:
  8. Message('Fout', 'U heeft geen wachtwoord ingevuld.', 4, true);
  9. break
  10. case 200:
  11. Message('Fout', 'Uw gebruikersnaam en/of wachtwoorden bleken niet juist te zijn!', 4, true);
  12. break
  13. case 300:
  14. Message('Welkom' + Result[1], 'U bent succesvol ingelogd en wordt nu doorgestuurd...', 3, false);
  15. setTimeout("Redirect('index.php')",2800);
  16. break
  17. default
  18. Message('Fout', 'Probeer het opnieuw!', 4, true);
  19. }

Het is maar een optie, een default mee te geven.

http://www.w3schools.com/js/js_switch.asp
Verder zie ik geen fout http://www.w3schools.com/js/js_switch.asp
Of ik zie wat over het hoofd  
Offline mike87 - 10/01/2007 13:22 (laatste wijziging 10/01/2007 13:33)
Avatar van mike87 Nieuw lid Na, nu krijg ik ineens in de foutconsole:

Fout: LogUser is not defined
Bronbestand: index.php
Regel: 1

Maar me FireBug is bugged geloof ik. Hij geeft nu namelijk fouten in aan FireBug zelf, ff verwijderen en opnieuw installeren dan maar.

Edit
FireBug werkt weer zoals het moest, gaf gelijk een fout in me Message() functie aan, probleem verholpen in de Message() functie.

Er zat nog een klein foutje in de switch, namelijk de : bij de default.
Maar desondanks blijft het bericht komen:
Er ging iets fout...

Deze switch heb ik nu ook getest met en zonder de quote's maar toch pakt hij geen enkel ding uit de switch.

Een voorbeeld van de variable Output:
201::De door jouw opgegeven gebruikersnaam en/of wachtwoord waren niet juist.

Hierdoor wordt Result[0] dus 201.
En die 201 komt ook in een alert te staan. Maar me switch heeft er blijkbaar schijt aan 

@Kr4nKz1n
Als jij iets over het hoofd ziet, ben ik wel heel benieuwd wat, want dan ben je niet de enige die iets over het hoofd ziet.
Aangezien Result[0] alleen maar waarde's kan bevatten die in de switch voor komen.
Offline Kr4nKz1n - 10/01/2007 13:47
Avatar van Kr4nKz1n Onbekend probeer eens met if en else te werken.
Dan kun je ook groter dan en kleiner dan etc.
Offline mike87 - 10/01/2007 13:54 (laatste wijziging 10/01/2007 14:13)
Avatar van mike87 Nieuw lid Had ik al eens gedaan, daar kwam ik ook steeds uit in de else.


Ik heb nu eens dit gedaan, en dit werkt wel?

  1. var Output = HttpObject.responseText;
  2. var Result = Output.split('::');
  3. var Test = "300";
  4.  
  5. alert(Output);
  6. alert(Result[0]);
  7.  
  8. switch (Test)
  9. {
  10. case "100":
  11. Message('Fout', 'U heeft geen gebruikersnaam ingevuld.', 4, true);
  12. break
  13. case "101":
  14. Message('Fout', 'U heeft geen wachtwoord ingevuld.', 4, true);
  15. break
  16. case "200":
  17. Message('Fout', 'Uw gebruikersnaam en/of wachtwoorden bleken niet juist te zijn!', 4, true);
  18. break
  19. case "300":
  20. Message('Welkom' + Result[1], 'U bent succesvol ingelogd en wordt nu doorgestuurd...', 3, false);
  21. setTimeout("Redirect('index.php')",2800);
  22. break
  23. default:
  24. Message('Fout', 'Er ging iets fout...', 4, true);
  25. }


Nu komt me switch wel uit waar ie zou moeten komen.
Hoe los ik het nu op, want het heeft duidelijk te maken met een int/string.
Want of ik in me switch nou wel of geen gebruik maak van quote's, ik kom altijd maar bij de default terecht.
Offline Kr4nKz1n - 10/01/2007 14:14
Avatar van Kr4nKz1n Onbekend
  1. <? Kleur
  2. switch (Result[0])
  3. {
  4. case 100:
  5. Message('Fout', 'U heeft geen gebruikersnaam ingevuld.', 4, true);
  6. break
  7. case 101:
  8. Message('Fout', 'U heeft geen wachtwoord ingevuld.', 4, true);
  9. break
  10. case 200:
  11. Message('Fout', 'Uw gebruikersnaam en/of wachtwoorden bleken niet juist te zijn!', 4, true);
  12. break
  13. case 300:
  14. Message('Welkom' + Result[1], 'U bent succesvol ingelogd en wordt nu doorgestuurd...', 3, false);
  15. setTimeout("Redirect('index.php')",2800);
  16. break
  17. default:
  18. Message('Fout', 'Probeer het opnieuw!', 4, true);
  19. }
Offline mike87 - 10/01/2007 14:17 (laatste wijziging 10/01/2007 14:19)
Avatar van mike87 Nieuw lid Ik heb het probleem opgelost op een andere manier:

switch ( parseInt ( Result[0] ) )

En de case's zonder quote's en het werkt, eindelijk

Gelukkig heb ik vorig jaar JAVA op school gehad, en moest ik hier ineens aan denken, en vandaar dat ik dit probeerde.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.239s