Bug basique mais incompréhensible avec ajax...

ephelya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   -  
ephelya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,



Bonjour,




Je bute sur un script ajax qui ne me renvoie pas les infos cherchées et je ne comprends pas où est le problème. Si quelqu'un peut m'aider ce serait super ! :-)
Voici mon script ajax :
    $("#valid_login").click(function() {
        var login = $("input#login2").val();
        var pwd = $("input#pwd").val(); 
        console.log("login "+login+" "+pwd);
            $.ajax({
                data: {login:login,pwd:pwd },
                //dataType: 'json',
                type: "POST",
                url: "checklogin.php", 
                error : function(x,err){
                         alert(err);
                        },	    
                success: function(data)
                {
                    console.log("userdata "+data);
                    });
                }
            });	 
        
        return false;
    }); 

Je précise que les valeurs login et pwd sont bien présentes et que checklogin.php existe bien l'emplacement voulu.
Voici le script checklogin (que j'ai réduit à une ligne pour tente de résoudre le bug)
<?php return ("ok");



Tout me semble ok mais la console m'affiche uniquement "userdata", le "ok" n'est pas récupéré... Pourquoi ?
Merci d'avance pour votre aide !

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

En ajax on n'utilise pas le RETURN côté PHP .... mais le ECHO
par exemple :
$result = "ok";


//retour ajax (en format JSON )
echo json_encode($result);

0
ephelya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   2
 
le problème ne vient pas de là, avec echo json_encode($result); ça me retourne PArse error (et je mets bien datatype: json dans le script jquery).
J'utilise régulièrement "return result" lorsque je ne cherche pas à réucpérer des données json et je n'ai jamais le moindre problème....
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Si il te met un parse Error.... c'est que ton script PHP génère une erreur......
Par exemple... il est mal encodé et il se trouve avec un caractère à la noix dedans....
Vérifie que le fichier est en UTF8 sans BOM (voir chapitre 1 de ce lien pour savoir comment regarder : https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8 )
De plus, si tu places, dans ton JS, un console.log du retour de ton Ajax, tu devrais pouvoir voir dans la console le détail de l'erreur plus complet qu'avec simplement un alert....
error: function(xhr, status, error) {
  console.log(error);
   alert(xhr.responseText);
}    
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Et puis... comment peux tu dire que tu n'attends pas de retour...
vu le nom de ta fonction et ce que tu souhaites en faire dans le success
 success: function(data)
                {
                    console.log("userdata "+data);
                    });
                }

C'est bien que tu attends une réponse.....
0
ephelya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   2
 
je ne dis pas que je n'attends pas de retour mais que je ne l'atttends pas en json.
Merci pour le conseil en tout cas, je testerai ça demain. Pr conrtte, vu que ds mon scrpt phpil n'y a que <?php return ("ok"); ?> (ou echo json_encode($result);) je ne vois pas où pourrait être l'erreur...
Bonne soirée
0