login  Naam:   Wachtwoord: 
Registreer je!
 Forum

AJAX post werkt niet 100%

Offline koosax - 02/11/2011 17:00
Avatar van koosaxLid Hoi,

Voor een inlogsysteem heb ik de volgende code:

  1. $(document).ready(function(){
  2. $("#form1").submit( function () {
  3. $.ajax({
  4. type: "POST",
  5. data : $(this).serialize(),
  6. cache: false,
  7. url: "test.php",
  8. success: function(data){
  9. if (data == 1) {
  10. msg('goed','welkom');
  11. var data = "";
  12. }else{
  13. msg('fout','Verkeerde inloggegevens');
  14. var data = "";
  15. }
  16. }
  17. });
  18. return false;
  19. });
  20. });


Op zich werkt de code goed, test.php kijkt wat je hebt ingevuld wanneer dit klopt echoed deze '1' waarna de functie msg(); aangeroepen word. Het probleem is alleen dat wanneer je de verkeerde inloggegevens invult je eerst de goede melding krijgt (Verkeerde inloggegevens) alleen wanneer je dan alsnog de goede inloggegevens invult krijg je niet de welkom-melding te zien maar weer die van de 'Verkeerde inloggegevens'.

Ik snap alleen niet hoe dit komt aangezien test.php toch echt geen '1' echoed wanneer je iets verkeerd intypt.

Hopelijk is het een beetje duidelijk en weet iemand het antwoord hierop, alvast bedankt! 

8 antwoorden

Gesponsorde links
Offline Koen - 02/11/2011 17:12
Avatar van Koen PHP expert Probeer eens met if (data == "1") { ?

Als het probleem niet opgelost is moet je de code van test.php eens posten.
Offline koosax - 02/11/2011 17:54
Avatar van koosax Lid
Koen schreef:
Probeer eens met if (data == "1") { ?

Als het probleem niet opgelost is moet je de code van test.php eens posten.


Dit werkt helaas niet, de code van test.php is nog niet echt heel interessant aangezien ik het alleen maar even als test gebruik om te kijken of alles verder werkt. Maar is de code:

  1. <?php
  2.  
  3. if ($_POST["name"] == "hoi"){
  4. echo 1;
  5. }
  6.  
  7. ?>


Het gekke vind ik ook dat wanneer ik de data in een alert stop deze wel aangepast word 
Offline vinTage - 02/11/2011 21:38 (laatste wijziging 02/11/2011 21:40)
Avatar van vinTage Nieuw lid Hier werkt alles goed hoor..zowel in ff als in ie.

  1. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
  2. <script type="text/javascript">
  3. $(document).ready(function(){
  4. $("#form1").submit( function () {
  5. $.ajax({
  6. type: "POST",
  7. data : $(this).serialize(),
  8. cache: false,
  9. url: "test.php",
  10. success: function(data){
  11. if (data == 1) {
  12. msg('goed','welkom');
  13. var data = "";
  14. }else{
  15. msg('fout','Verkeerde inloggegevens');
  16. var data = "";
  17. }
  18. }
  19. });
  20. return false;
  21. });
  22. });
  23.  
  24. function msg(a, b)
  25. {
  26. $('#returndiv').html(a+'<br />'+b);
  27. }
  28. </script>
  29.  
  30. <form id="form1">
  31. <input type="text" id="name" name="name" />
  32. <input type="submit" />
  33. </form>
  34.  
  35. <div id="returndiv"></div>
Offline koosax - 03/11/2011 09:49
Avatar van koosax Lid Oke dat is vaag 

In dat geval ligt het denk ik aan het jQuery-script dat gebruikt word voor de msg(); functie.
Even ter verduidelijking je hebt een index.php hierop staat het inlogformulier, de bestanden msg.js (zie onderstaande code) en post.js (code uit beginpost) zijn hierin toegevoegd.

Wanneer je het formulier post word post.js aangeroepen deze communiceert met test.php, dit werkt blijkbaar goed zoals te zien is in het voorbeeld van vinTage. Het probleem zit daarom denk ik in msg.js daarom hieronder even de code:

  1. function msg(soort,inhoud) {
  2.  
  3. $("body").append("<div id='alert' class='"+soort+"'>"+inhoud+"</div>");
  4.  
  5. var $alert = $('#alert');
  6. if($alert.length)
  7. {
  8. var alerttimer = window.setTimeout(function () {
  9. $alert.trigger('click');
  10. }, 2500);
  11. $alert.animate({height: $alert.css('line-height') || '50px'}, 550)
  12. .click(function () {
  13. window.clearTimeout(alerttimer);
  14. $alert.animate({height: '0'}, 550);
  15. });
  16. }
  17.  
  18. }
Offline vinTage - 03/11/2011 10:03
Avatar van vinTage Nieuw lid
  1. function msg(soort,inhoud) {
  2.  
  3. $("body").append("<div id='alert' class='"+soort+"'></div>");
  4. $("#alert").html(inhoud)
  5.  
  6. var $alert = $('#alert');
  7. if($alert.length)
  8. {
  9. var alerttimer = window.setTimeout(function () {
  10. $alert.trigger('click');
  11. }, 2500);
  12. $alert.animate({height: $alert.css('line-height') || '50px'}, 550)
  13. .click(function () {
  14. window.clearTimeout(alerttimer);
  15. $alert.animate({height: '0'}, 550);
  16. });
  17. }
  18.  
  19. }
Offline Martijn - 03/11/2011 19:16
Avatar van Martijn Crew PHP javascript vars hoeven niet met een $ hae?

var DitIsHelemaalGoed;
Offline vinTage - 03/11/2011 22:48
Avatar van vinTage Nieuw lid Maar het mag wel, dus wat maakt het uit ? 
Offline Martijn - 04/11/2011 14:06
Avatar van Martijn Crew PHP nou, je javascript javascript laten en je php php Dr stond ook 'hoeft niet' 
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.2s