JeuWeb - Crée ton jeu par navigateur
[Résolu] Récupération d'une donnée issue de la BdD via Ajax - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu] Récupération d'une donnée issue de la BdD via Ajax (/showthread.php?tid=7634)



[Résolu] Récupération d'une donnée issue de la BdD via Ajax - L'Omniscient - 27-04-2016

Rebonjour les gens Big Grin

Bon, je me casse la tête sur une connerie dont je ne trouve pas la réponse, et en fait, à force de chercher, il me semble que ce n'est pas possible ! Et c'est bien malheureux. Mais je viens quand même vous demander pour être sûr.

J'ai une requête AJAX qui met à jour des données, et je voudrais, au retour de cette requête, récupérer des données issue directement de la BdD. (Ou, pour faire simple, un simple mot inscrit dans une variable).

En gros, au retour d'une requête AJAX, je voudrais récupérer "nn" issue de ma page appelée côté serveur.

Etape 1: Côté client => On récupère les données, et on les envoie en Ajax
Etape 2 : Côté serveur => PHP modifie la BdD avec les données envoyées
Etape 3 (le problème) : Côté serveur => Envoi une donnée "nn" côté client

Est-ce que c'est possible ?

(Pour l'histoire, il faut que j'actualise des données de sessions dans mon code JS. Je peux éventuellement trouver d'autres alternatives, mais ce qui me paraîtrait le plus logique c'est de récupérer les nouvelles données de sessions au retour de ma page côté serveur pour les avoir directement en JS. Je gère la transaction PHP / JS, pas de soucis à ce niveau, donc je pense que l'exemple avec la donnée "nn" est plus parlant.)

EDIT : En fait, si, j'ai l'impression que c'est possible, mais je ne comprends pas quelle partie du code il me manque !
J'ai ça actuellement côté client :
$(document).ready(function(){
                $.ajax({
                    url : 'AJAX.php',
                    type : 'POST',
                    data : dataAjax,
                    dataType : 'text',
                    error : function(){
                        alert('Vous avez été deconnecté de Internet. Vérifiez votre connexion, et rechargez votre page.');
                        alert('Vous avez été deconnecté de Internet. Vérifiez votre connexion, et rechargez votre page.');
                    },
                    success : function(data) {
                        alert(data);
                    }
                });
Et c$oté serveur, hormis le code de modification des données, j'ai just $data = "nn";


RE: Récupération d'une donnée issue de la BdD via Ajax - Polou - 27-04-2016

Côté serveur on peut voir le code ?
Tu fais un echo de $data ?


RE: Récupération d'une donnée issue de la BdD via Ajax - Xenos - 27-04-2016

Oui, je ne vois pas trop le problème... Tu fais tes traitements de mise à jour coté serveur suivis d'un traitement de récupération de données de la BDD, et tu echo json_encode($data); le tout pour n'avoir plus qu'à JSON.parse(data) coté client (dans ton success... profites-en, ce n'est pas souvent que j'accepte d'aider sur du JS et encore moins sur du jQuery!) et faire ce que tu veux te tes données.


RE: Récupération d'une donnée issue de la BdD via Ajax - L'Omniscient - 27-04-2016

Bah du coup côté serveur j'ai que ça pour l'envoi de la donnée :
$data = "nn";

Si je fais echo "nn" j'ai un message d'erreur :
<br />
<font size='1'><table class='xdebug-error xe-parse-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Parse error: syntax error, unexpected 'echo' (T_ECHO) in C:\wamp\www\L'Ile du Coeur\ileducoeur\AJAX.php on line <i>123</i></th></tr>
</table></font>

Pareil si je l'encode en JSON.

Et côté client, si je fais alert(JSON.parse(data)); ça n'ouvre jamais la fenêtre.


RE: Récupération d'une donnée issue de la BdD via Ajax - L'Omniscient - 27-04-2016

Pour l'instant côté serveur j'ai ça :
$info = "nn";
$data = echo json_encode($info);

Edit: Yeaaah ça marche comme ça :
$data = "nn";
echo json_encode($data);

Ok je comprends mieux du coup avec le json_encode comment AJAX récupère la variable.
Je galérais >.< Merci


RE: [Résolu] Récupération d'une donnée issue de la BdD via Ajax - Xenos - 27-04-2016

Heu, évidemment que tu as une parse erreur avec un $data = echo $info;, cf la doc. N'hésite pas à bien aller lire les docs des langages car bricoler en faisant des essais jusqu'à ce que "ça marche", c'est une technique qui a de forts risques de te péter dans les doigts à terme (niveau sécurité ou simplement niveau maintenance car tu ne sauras plus à quoi sert telle ou telle ligne et que tu introduiras des régressions: tu détruiras 3 trucs existants en voulant rajouter 1 seul nouveau).


RE: [Résolu] Récupération d'une donnée issue de la BdD via Ajax - L'Omniscient - 28-04-2016

Mais les docs je comprends pas grand chose en fait... C'est pas faute de les lire et de les relire, mais je pense que pour le coup, les docs sont fait par des informaticiens pour des informaticiens. Et j'ai pas du tout les termes pour comprendre précisément. Du coup c'est du global.

Après l'avantages de trifouiller jusqu'à trouver, c'est que tu finis par comprendre parfaitement les choses, les liens, la logique, les erreurs et leur pourquoi Big Grin C'est comme faire un exercice à répétition jusqu'à ce que tu trouves, je trouve ça assez formateur, j'ai tout appris comme ça ^_^


RE: [Résolu] Récupération d'une donnée issue de la BdD via Ajax - Xenos - 28-04-2016

Non, en trifouillant, tu finis par inférer des liens et des choses qui, si t'as du bol, sont justes (et cela pousse à garder cette méthode), et si t'en as pas (et cela arrivera) sont fausses. Dans ce dernier cas, cela finit souvent par une remise en question tout le code précédent ("bon ben je recommence de 0 parce que gnangna" tue les projets).

Je trouve plutôt qu'on s'approche de "Quelle est la racine carrée de 4? - 1 - Non - 3 - Non - 2 - Oui" qui finira en "Quelle est la racine carrée de 6 ? (bon courage pour répondre un entier!" ou "quelle est la racine carrée de -1? (encore plus bon courage!)" ou "Quelle *sont* les racines carrées de 4?".

Si tu as des problèmes avec les termes de la doc, avec la façon de la lire ou peu importe, essaie de trouver d'abord sur le net, et au besoin, soit tu demandes ici (vu ton activité, je ne pense pas qu'on t'enverra promener pour des questions "d'apprendre à programmer"), et n'hésite pas à demander sur Skype (sers-toi: c'est dans mon profil). Après, tu peux rester sur le tâtonnement mais s'aider de la doc (une fois qu'on a pris quelques heures voire jour pour apprendre à la lire), c'est vraiment rentable (que ce soit PHP, HTML ou JS, j'adore trouver ce que je veux faire dans la doc: cela évite de recoder des algos existants ou de coder de travers).


RE: [Résolu] Récupération d'une donnée issue de la BdD via Ajax - Akira777 - 29-04-2016

+1 Xenos.

L'omniscient, si tu as besoin d'aide n'hésites pas à me contacter sur Skype (envoi moi un MP pour ça)