JS - AJAX asynchrone - comment faire remonter une variable - Javascript/Node.js - Programmation
Marsh Posté le 17-03-2015 à 18:00:39
bon, j'ai compris, mais je bloque un poil plus loin
j'ai fais ça :
Code :
|
problème suivant : quelque soit le cas, je tombe sur le case default, alors que la console me renvoie "string 1"
Marsh Posté le 18-03-2015 à 12:05:15
Bon, problème résolu, mais j'aimerais comprendre si un expert passe
J'ai feinté en rajoutant :
Code :
|
le résultat de mon console.log est exactement le même : string 1, mais là, le switch sait l'interpréter ...
Marsh Posté le 18-03-2015 à 18:58:21
As tu testé la longueur de ton result ?
tu testes '1', '2', etc... mais il est possible que pour une raison ou une autre sa valeur soit '1 ', '2 ' ou qqch comme ca, bref des espaces en trop
Si tu n'as pas le controle la dessus du coté serveur, tu peux faire :
switch (result.trim ())
{
case '1':
// ...
}
go https://developer.mozilla.org/fr/do [...] tring/trim
Marsh Posté le 18-03-2015 à 23:51:50
ah, merci pour l'info, j'essaye ça demain
Marsh Posté le 19-03-2015 à 17:38:39
bon, j'ai essayé et tu avais raison, .
Les valeurs remontent après ma requête sql grâce à un simple echo "1"; echo "2" ... en fonction du résultat de la requête. Ce qui introduit un retour chariot que je n'avais pas détecté.
Je ne sais d'ailleurs pas si il y a un autre moyen de faire remonter l'info.
Marsh Posté le 19-03-2015 à 18:35:36
en JSON par exemple, particulièrement adapté:
Code :
|
Done
Marsh Posté le 19-03-2015 à 18:36:27
Tu peux même faire en sorte que jQuery fasse la conversion pour toi, mate getJSON -> http://api.jquery.com/jquery.getjson/
Marsh Posté le 20-03-2015 à 08:48:06
j'allais justement proposer Json, mais comme je n'avais pu eu le temps de me pencher dessus, j'avais peur de dire des bêtises.
Merci pour l'exemple en tout cas
Marsh Posté le 20-03-2015 à 14:57:25
Bon, à chaque solution son nouveau problème ... en l'occurrence avec JSON
j'fais ça :
Code :
|
Quand je récupère le truc via $.ajax ou $.post, il refuse le JSON.parse parce que ce que j'ai récupéré est un objet...
Je ne comprends pas bien, il me semblait que json_encode devait retourner un tableau sous forme de chaîne qui puisse être compris par JSON.parse ...
Donc, pour résoudre le problème, je fais simplement un switch(result.a) qui me retourne bien 1.
Marsh Posté le 20-03-2015 à 16:57:02
Utilises-tu un debugger ou tu bosses à l'aveugle ?
Genre Firebug ou les outils de dev natifs de Firefox ou Chrome ?
Avec ce genre d'outils, tu peux voir ce qui transite.
Il est possible que en fonction de la facon dont tu fais l'appel, jQuery transforme tout seul le json en object JS.
Donc dans ce cas, en effet, pas besoin de parser
Marsh Posté le 20-03-2015 à 17:36:15
SICKofitALL a écrit : Utilises-tu un debugger ou tu bosses à l'aveugle ? |
Me semble pas utiliser une façon particulièrement peu commune
Code :
|
Bon, par contre, c'est vrai que je suis un vrai débutant, donc ceci explique cela... pas de bases valables
j'utilise l'outil natif de chrome pour le débugage, mais quand je lis ce qui suit, je capte pas forcément tout
Code :
|
Marsh Posté le 20-03-2015 à 20:05:50
Concernant l'outil de chrome, mate ce screenshot, tu peux voir directement ce qui arrive :
Dans ta requete, sous jQuery, tu précises
datatype : "json"
Il ya des grandes chances (check les docs) que jQuery s'attend du coup à recevoir du JSON, et donc fait donc la conversion string->object directement.
Quand on récupere du JSON, de tte facon c'est pour l'utiliser en tant qu'object, jQuery te facilite donc le taf
Marsh Posté le 21-03-2015 à 10:19:40
SICKofitALL a écrit : Concernant l'outil de chrome, mate ce screenshot, tu peux voir directement ce qui arrive : Dans ta requete, sous jQuery, tu précises Il ya des grandes chances (check les docs) que jQuery s'attend du coup à recevoir du JSON, et donc fait donc la conversion string->object directement. |
Pour l'outil, je le connais et l'utilise, pas de soucis (il m'a été indispensable pour plein de debuggage ). Mon problème, par manque de base, c'est plus la grammaire entre les string, les objets, etc... et donc, des crochets ou des accolades, ça ne me parle pas directement
Pour l'explication, effectivement, c'est le plus logique
Marsh Posté le 28-09-2015 à 14:45:40
Bon, je remonte ce topic avec une nouvelle question qui a trait à JSON
Je fais des graph avec l'excellente bibliothèque highchart, mais je ne comprends pas bien toutes les subtilités des exemples proposés.
Grosso modo, côté serveur, j'ai ça :
Code :
|
et côté client :
Code :
|
Ce que je ne comprends pas, c'est comment fonctionne callback, sachant que si je l'omets, le serveur est bien interrogé, renvoie bien le tableau, mais ça s'arrête là.
callback? envoie une donnée du type "Jquery334345436439225_234389234820" qui viens donc s'ajouter en entête de l'objet JSON.
C'est indispensable pour identifier les données en retour ?
Marsh Posté le 28-09-2015 à 22:45:06
c'est du JSONP je suppose. Ca permet de traiter les données qui ne sont pas forcement sur le même serveur qui fourni le JS (le fameux Same Origin Policy).
Marsh Posté le 29-09-2015 à 13:15:16
Ok, je regarderai ça de plus près à l'occasion
Marsh Posté le 17-03-2015 à 15:15:10
Bonjour.
J'ai un problème connu avec ajax
Tellement connu que je n'arrive pas à la résoudre.
Pour résumer, j'interroge une base sql avec $.post de la façon suivante :
Et dans un autre fichier, j'appelle ma fonction de la façon suivante :
Evidemment, etat = undefined à la fin... Si un spécialiste Ajax peut m'aiguiller
J'ai cherché dans tous les sens, je ne vois pas où est ma connerie.
Message édité par _pollux_ le 17-03-2015 à 15:16:14
---------------
Le topic du sport électronique@hfr : watch the l33t !