Echo json_encode($tab) n'affiche rien
Résolu/Fermé
abirgl
Messages postés
127
Date d'inscription
lundi 31 octobre 2016
Statut
Membre
Dernière intervention
20 juin 2017
-
17 nov. 2016 à 17:19
jordane45 Messages postés 38429 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 février 2025 - 24 nov. 2016 à 18:11
jordane45 Messages postés 38429 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 février 2025 - 24 nov. 2016 à 18:11
A voir également:
- Echo json_encode php
- Easy php - Télécharger - Divers Web & Internet
- Echo lors d'un appel samsung - Forum Samsung
- @Echo off ✓ - Forum Windows 7
- Fichier .bat, echo off - Forum Virus
- Echo retour à la ligne ✓ - Forum Shell
3 réponses
jordane45
Messages postés
38429
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 février 2025
4 735
17 nov. 2016 à 17:23
17 nov. 2016 à 17:23
Bonjour,
en général tu ne fais qu'un seul echo json_encode dans ton fichier....
Le plus simple pour remédier à ton besoin est de stocker des deux tableaux dans un tableau.. et de faire l'écho de celui ci.
en général tu ne fais qu'un seul echo json_encode dans ton fichier....
Le plus simple pour remédier à ton besoin est de stocker des deux tableaux dans un tableau.. et de faire l'écho de celui ci.
<?php $result = array(); // ta premiere requete //.... //ta seconde requete //.... //et à la fin : $result = array("tabTache"=>$tabTache,"tabArticle"=>$tabArticle); echo json_encode($result);
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
Modifié par Reivax962 le 18/11/2016 à 09:46
Modifié par Reivax962 le 18/11/2016 à 09:46
Bonjour,
En cas d'erreur, json_encode renvoie la valeur FALSE, et la fonction json_last_error() permet d'avoir l'explication de l'erreur.
json_last_error() renvoie un code d'erreur dont les valeurs sont explicitées dans la doc : https://www.php.net/manual/en/function.json-last-error.php
Je te suggère donc de tester ton deuxième tableau de cette manière :
Xavier
En cas d'erreur, json_encode renvoie la valeur FALSE, et la fonction json_last_error() permet d'avoir l'explication de l'erreur.
json_last_error() renvoie un code d'erreur dont les valeurs sont explicitées dans la doc : https://www.php.net/manual/en/function.json-last-error.php
Je te suggère donc de tester ton deuxième tableau de cette manière :
<?php $tabArticle=array(); $sql_tab_art="select DISTINCT(LibArticle) from Article "; $stmt_tab_art=sqlsrv_query($conn,$sql_tab_art); //while($row_tab_tache=sqlsrv_fetch_array($stmt_tab_tache, SQLSRV_FETCH_NUMERIC)) while ($row_tab_art=sqlsrv_fetch_array($stmt_tab_art, SQLSRV_FETCH_NUMERIC)) { array_push($tabArticle, $row_tab_art[0]); } //var_dump($tabArticle); $resultat = json_encode($tabArticle); if (false === $resultat) echo "Erreur d'encodage JSON ! Code erreur : " . json_last_error(); else echo $resultat; ?>
Xavier
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
Modifié par Reivax962 le 18/11/2016 à 09:56
Modifié par Reivax962 le 18/11/2016 à 09:56
Pardon, la documentation ne donne pas les codes d'erreur numériques...
Donc pour avoir un vrai message d'erreur, utilise cette fonction :
Si tu n'es pas en php 7 mais inférieur, supprime les deux derniers, ils te mettraient un message d'erreur (ils n'existent pas encore en php 5.x)
Xavier
Donc pour avoir un vrai message d'erreur, utilise cette fonction :
function json_error_string($code) { switch ($code) { case JSON_ERROR_NONE: return "No error"; case JSON_ERROR_DEPTH: return "The maximum stack depth has been exceeded"; case JSON_ERROR_STATE_MISMATCH: return "Invalid or malformed JSON"; case JSON_ERROR_CTRL_CHAR: return "Control character error, possibly incorrectly encoded"; case JSON_ERROR_SYNTAX: return "Syntax error"; case JSON_ERROR_UTF8: return "Malformed UTF-8 characters, possibly incorrectly encoded"; case JSON_ERROR_RECURSION: return "One or more recursive references in the value to be encoded"; case JSON_ERROR_INF_OR_NAN: return "One or more NAN or INF values in the value to be encoded"; case JSON_ERROR_UNSUPPORTED_TYPE: return "A value of a type that cannot be encoded was given"; case JSON_ERROR_INVALID_PROPERTY_NAME: return "A property name that cannot be encoded was given"; case JSON_ERROR_UTF16: return "Malformed UTF-16 characters, possibly incorrectly encoded"; } }
Si tu n'es pas en php 7 mais inférieur, supprime les deux derniers, ils te mettraient un message d'erreur (ils n'existent pas encore en php 5.x)
Xavier
jordane45
Messages postés
38429
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 février 2025
4 735
18 nov. 2016 à 10:48
18 nov. 2016 à 10:48
et à chaque fois je dois parcourir un tableau et l'insérer dans la table adéquate dans ma base de données, si je stocke les 4 tableaux dans un seul tableau résultat comment je pourrais distinguer les éléments de chaque table sachant que je ne connais pas à l'avance le nombre d'éléments de chaque tableau
Si tu fais un console.log du retour dans ton ajax tu verras que c'est un objet de la forme
objet.tableau1
objet.tableau2
etc...
Ou pour l'exemple que tu nous as donné
objet.tabTache
objet.tabArticle
....
Chacun de ces objets contenant les différentes variables de tes array.
que tu peux donc parcourir à l'aide de boucles.
abirgl
Messages postés
127
Date d'inscription
lundi 31 octobre 2016
Statut
Membre
Dernière intervention
20 juin 2017
24 nov. 2016 à 17:17
24 nov. 2016 à 17:17
Bonjour,
je voulais vous tenir au courant sur mon avancement et en même temps je vous demande de m'aider à surmonter le problème que je viens de découvrir:
Concernant la fonction json_encode on peut l'utiliser autant de fois qu'on a besoin dans un seul fichier mais elle ne m'a pas donné de résultat car mes textes contiennent des caractères spéciaux, lorsque j'ai utilisé des textes avec des caractères simples j'obtiens un résultat mais prochainement les utilisateurs de mon application peuvent saisir des textes avec des caractères spéciaux, alors comment je peux traiter ce problème ? comment faire pour que json_encode traite les textes avec des caractères spéciaux?
Je note que j'ai utilisé la fonction utf8_decode(json_encode($result)) mais ça n(a rien donné, avez d'autres solutions à me proposer ? Je vous remercie d'avance
je voulais vous tenir au courant sur mon avancement et en même temps je vous demande de m'aider à surmonter le problème que je viens de découvrir:
Concernant la fonction json_encode on peut l'utiliser autant de fois qu'on a besoin dans un seul fichier mais elle ne m'a pas donné de résultat car mes textes contiennent des caractères spéciaux, lorsque j'ai utilisé des textes avec des caractères simples j'obtiens un résultat mais prochainement les utilisateurs de mon application peuvent saisir des textes avec des caractères spéciaux, alors comment je peux traiter ce problème ? comment faire pour que json_encode traite les textes avec des caractères spéciaux?
Je note que j'ai utilisé la fonction utf8_decode(json_encode($result)) mais ça n(a rien donné, avez d'autres solutions à me proposer ? Je vous remercie d'avance
jordane45
Messages postés
38429
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 février 2025
4 735
>
abirgl
Messages postés
127
Date d'inscription
lundi 31 octobre 2016
Statut
Membre
Dernière intervention
20 juin 2017
24 nov. 2016 à 18:11
24 nov. 2016 à 18:11
Tu dois avoir tes fichiers php encodés en UTF8 ainsi que ta BDD
Pour ça, applique tout ce qui est noté ici :
https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8
Pour ça, applique tout ce qui est noté ici :
https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8
18 nov. 2016 à 08:27