Bonjour,
Je dois résoudre un problème dans une application web qu'un de mes anciens collègues avait développé. Celui-ci n'étant malheureusement plus là, et mes collègues ne s'y connaissant pas en web (nous n'en faisont quasiment plus), je tente depuis une semaine de débuger la bête, mais n'étant pas un expert, je n'y arrive pas(Pour vous situer j'ai appris avec cette tâche que que sont JQuery, AJAX et JSON
).
Bref, j'ai tout de même trouvé (non sans peine) l'origine du problème :
J'ai une requête AJAX qui exécute une fonction PHP. Cette fonction PHP effectue un SELECT dans une base de données, et renvoie celle-ci en JSON (avec json_encode, et le JSON généré est conforme, j'ai vérifié avec un validateur online). Le problème est que la requête AJAX n'arrive pas à décoder celui-ci.
Voici les sources :
AJAX :
PHP:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 $.ajax({ url: 'utilisateur/obtenir-liste-utilisateur.php', type: 'GET', data: { type: typeUtilisateur, }, contentType:"application/json; charset=utf-8", dataType: 'json', success: function(data){ switch(typeUtilisateur){ case 'client': listeClients = data; break; case 'courtier': listeCourtiers = data; break; default: break; } $( "input.tableau-annonce-" + typeUtilisateur).autocomplete({ source: data }); }, error : function(result, statut, erreur){ alert(erreur); alert(JSON.stringify(result)); }, });
Le code fonctionnait parfaitement auparavant, je m'explique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 // Inclusion des librairies. require_once('../includes/utils.php'); // Connexion à la base de données. $connexion = bd_connexion(); // Préparation de la requête. $requete = "SELECT * FROM tb_utilisateur WHERE type_utilisateur='" . $_GET['type'] . "'"; // Exécution de la requête. $res = bd_requete($connexion, $requete); $liste_utilisateur; $utilisateur_a_ajouter; while($ligne = mysqli_fetch_assoc($res)){ $utilisateur_a_ajouter = $ligne['nom_utilisateur']; if(isset($ligne['prenom_utilisateur'])){ if(strlen($ligne['prenom_utilisateur']) > 0) { $utilisateur_a_ajouter .= " " . $ligne['prenom_utilisateur']; } } $liste_utilisateur[] = $utilisateur_a_ajouter; } bd_ferme($connexion); // Retourne le résultat du tableau en JSON. echo json_encode($liste_utilisateur);
L'application a été supprimé par erreur, en même temps qu'un ancien nom de domaine. J'ai donc dû réinstaller celle-ci sur le nouveau nom de domaine (j'ai fait un copier-coller des fichiers, et j'ai restauré une copie de la base MySQL). Il est probable que les versions de PHP et des autres choses qui tournent ont changées (j'ai déjà tenté en vain de modifier la version de PHP).
Il est donc probable que ce soit soit un problème de version, soit une erreur de ma part lorsque j'ai remis en ligne l'application.
Merci d'avance pour votre aide, car j'avoue que je sèche complètement.
Partager