login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[Ajax]Scope probleem

Offline bibawa - 02/08/2007 13:12
Avatar van bibawaNieuw lid Ik heb ik javascript volgende functies en variabele declaratie gemaakt:

  1. <script language="javascript">
  2. var fouten="";
  3. var foutievedata=false;
  4. function valideerRegistreer(){
  5. //Controleren of de wachtwoorden gelijk zijn
  6.  
  7.  
  8. foutievedata=false;
  9. fouten ="Er zijn fouten opgetreden, velden met foutieve gegevens zijn gemarkeerd met een *<br />";
  10.  
  11. if(((document.registreer.txtWW1.value!="")&&(document.registreer.txtWW2.value!=""))&&(document.registreer.txtWW1.value==document.registreer.txtWW2.value)){
  12. document.getElementById('ww1').innerHTML="";
  13. document.getElementById('ww2').innerHTML="";
  14. }else{
  15. foutievedata = true;
  16. document.getElementById('ww1').innerHTML="<font class='rood'>* </font>";
  17. document.getElementById('ww2').innerHTML="<font class='rood'>* </font>";
  18. fouten += "* De ingevulde wachtwoorden zijn leeg of komen niet overeen !<br />";
  19.  
  20. }
  21. if(((document.registreer.txtEmail1.text!="")&&(document.registreer.txtEmail2.value!=""))&&(document.registreer.txtEmail1.value==document.registreer.txtEmail2.value)){
  22. document.getElementById('email1').innerHTML="";
  23. document.getElementById('email2').innerHTML="";
  24.  
  25. }else{
  26. foutievedata=true;
  27. document.getElementById('email1').innerHTML="<font class='rood'>*</font>";
  28. document.getElementById('email2').innerHTML="<font class='rood'>*</font>";
  29. fouten += "* De ingevulde e-mail adressen zijn leeg of komen niet overeen !<br />";
  30. }
  31. if((document.registreer.txtGebruikersnaam.value=="")){
  32. foutievedata=true;
  33. document.getElementById('gebruikersnaam').innerHTML="<font class='rood'>*</font>";
  34. fouten += "* Je vulde geen gebruikersnaam in !<br />";
  35. }else{
  36. //controleren of nog niet in gebruik
  37.  
  38. var uitTeVoeren="ajax/registreer.php?control=gebruikersnaam+&value="+document.registreer.txtGebruikersnaam.value+"&email="+document.registreer.txtEmail1.value+"";
  39. voerPaginaUitreg(uitTeVoeren,"registreer","gebruikersnaam");
  40.  
  41. }
  42. //postcode controleren
  43. if(document.registreer.txtPCIntern.value==undefined){
  44. foutievedata=true;
  45. document.getElementById('postcode').innerHTML="<font class='rood'>*</font>";
  46. fouten += "* Ongeldige postcode !<br />";
  47. }
  48.  
  49.  
  50.  
  51.  
  52. if(foutievedata){
  53. document.getElementById('fouten').innerHTML="<font class='rood'>"+fouten+"</font>";
  54. }else{
  55. document.getElementById('fouten').innerHTML="";
  56. var uitTeVoeren="ajax/registreer.php?control=voltooi&geb="+document.registreer.txtGebruikersnaam.value+"&email="+document.registreer.txtEmail1.value+"&wachtwoord="+document.registreer.txtWW1.value+"&pc="+document.registreer.txtPCIntern.value+"";
  57.  
  58. voerPaginaUitreg(uitTeVoeren,"registreer","voltooi");
  59. }
  60.  
  61.  
  62.  
  63. }
  64. function voerPaginaUitreg(pagina,oproepnaam,divfout){
  65.  
  66. var XMLHTTPObject = new XMLHttpRequest();
  67.  
  68. XMLHTTPObject.open('GET', pagina, true);
  69. XMLHTTPObject.setRequestHeader("Cache-Control", "no-cache");
  70. XMLHTTPObject.setRequestHeader("X_USERAGENT", oproepnaam);
  71.  
  72. XMLHTTPObject.send(null);
  73.  
  74. XMLHTTPObject.onreadystatechange=function() {
  75. if (XMLHTTPObject.readyState==4) {
  76.  
  77. terug = XMLHTTPObject.responseText;
  78.  
  79. if(divfout!='voltooi'){
  80.  
  81. if(parseInt(terug) >= 1){
  82.  
  83. foutievedata=;
  84.  
  85. document.getElementById(divfout).innerHTML = "<font class='rood'>*</font>";
  86. if(document.getElementById('fouten').innerHTML==""){
  87. document.getElementById('fouten').innerHTML+="<font class='rood'>Er zijn fouten opgetreden, velden met foutieve gegevens zijn gemarkeerd met een *<br />* De ingevulde gebruikersnaam en / of e-mail adres is reeds in gebruik !</font><br />";
  88. }else{
  89. document.getElementById('fouten').innerHTML+="<font class='rood'>* De ingevulde gebruikersnaam en / of e-mail adres is reeds in gebruik !<br /></font>";
  90. }
  91. }else{
  92. document.getElementById(divfout).innerHTML ="";
  93.  
  94. }
  95. }else{
  96. document.getElementById('inhoud').innerHTML="<table width='100%'><tr><td align='center'><font class='normaalgrijs'>Uw account is met succes geregistreerd!<br />We hebben een mail gestuurd met daarin de nodige gegevens om je account te activeren.</font></td></tr></table>";
  97. }
  98.  
  99.  
  100. }
  101. }
  102. }
  103.  
  104. </script>


De bedoeling is om hier een registratie formulier te gaan valideren adhv van oa ajax functie..

De variabelen fouten en foutievedata heb ik globaal gedeclareerd, met de bedoeling om er vanuit al mijn functies aan te kunnen, nu vanuit de functie valideerRegistreer() roep ik op een moment voerPaginaUitreg(uitTeVoeren,"registreer","gebruikersnaam"); op, en deze functie voert uiteindellijk ajax uit en gaat het resultaat vergelijken, wanneer dit resultaat >=1 dan moet de var. foutievedata op true worden gezet en dit wordt niet gedaan, ik heb al meermaals een alert gedaan van resultaat en deze is effecttief >=1 en hij komt ook in de if lus, het zit hem in het zetten van de variabele waarden wat niet lukt...

Wat doe ik verkeerd want ik zie het niet meer :/

9 antwoorden

Gesponsorde links
Offline Stijn - 02/08/2007 14:34
Avatar van Stijn PHP expert Je moet geen haakjes zetten in je if
  1. if( var == 1 || var == 2 ) {

In firefox zit een javascript console, kijk eens naar die foutmeldingen 
Offline Abbas - 02/08/2007 14:38 (laatste wijziging 02/08/2007 14:39)
Avatar van Abbas Gouden medaille

Crew .NET
Ok... Je moet geen haakjes zetten, maar normaal mag dat geen fouten geven als je het wel doet. 
In het vervolg lange stukken code op Plaatscode!
Offline bibawa - 02/08/2007 15:14
Avatar van bibawa Nieuw lid ja haakjes zijn het probleem zijn het zit hem in de functie "in de functie" , het deel voor de voerPaginauitreg wordt uitgevoerd (1 thread) maar alles in voerPaginauitreg is een aparte thread maw het een wacht op gegevens die te laat binnenkomen :/
Offline Abbas - 02/08/2007 15:26
Avatar van Abbas Gouden medaille

Crew .NET
Kan je zinsbouw nog onduidelijker? Schrijf je uitleg eens in deftige zinnen met alle woorden op de juiste plaats en met komma's en punten!
Offline bibawa - 02/08/2007 15:48
Avatar van bibawa Nieuw lid ja het is moeillijk om dat uit te leggen, het voerpaginauitreg wordt samen uitgevoerd met wat komt na de functie aanroep van die functie..


Ik hoop dat dit een (beetje) duidellijk is...
Offline Abbas - 02/08/2007 16:18
Avatar van Abbas Gouden medaille

Crew .NET
Zorg dan dat deze niet samen uitgevoerd worden...
Offline bibawa - 02/08/2007 17:05
Avatar van bibawa Nieuw lid zo'n dom antwoord, als je nu denkt dat ik zelf nog niet zover was...

als ik wist hoe dan stelde ik hier de vraag niet ...
Offline Abbas - 02/08/2007 17:21
Avatar van Abbas Gouden medaille

Crew .NET
Je legt niet eens je vraag duidelijk uit, hoe moeten wij dan weten WAT er precies verkeerd gaat bij jou en HOE moeten wij je dan verder helpen... 
Offline BramBo - 15/08/2007 14:34
Avatar van BramBo JS gevorderde Waarom mik je niet heel je formulier in een object, deze verstuur je naar php (nadat je hem met json encoded hebt). Decoden met JSON in php valideren en dan print "goed"; of print "fout";
dan in de callBack functie in je Javascript XMLHTTPObject.responeText ophalen en hierop baseer je wat je als volgt gaat doen.

Je kan ook een php array(JSON::encode) terug sturen die alle velden bevat en of ze goed of fout zijn.. Op deze manier kan je in je javascript specifieke errorhandlers maken.

Json : http://www.json.org/
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.192s