Incapable de récupérer un objet json, encore...
Bonjour,
J'ai un script ajax qui récupère une série de phrases depuis un fichier php.
et
je récupère bien mes données, mais je n'arrive pas à exploite les phrases, voici ce que me donne la console
Qu'est-ce que je fais mal ? Pourquoi je ne récupère pas mes phrases ??
Merci d'avance pour le coup de pouce ! :-)
J'ai un script ajax qui récupère une série de phrases depuis un fichier php.
$(document).ready(function () {
$.ajax({
data: {iduser:''},
type: "POST",
dataType: 'json',
url: "<?php echo HOME; ?>getpacks.php", //Relative or absolute path to response.php file
error : function(x,err){
alert(err);
},
success: function(data)
{
console.log(data);
var theme = data.name;
var phrases = data.phrases;
console.log("thème "+theme+" et phrases "+phrases);
$(phrases).each(function(id, ph) {
console.log("id: "+id+" phrase :"+ph)
$(ph).each(function (a, b) {
console.log("a "+a+" b "+b);
$(b).each(function (c, d) {
console.log("c "+c+" d "+d);
});
});
});
}
});
et
$packs = get_active_pack($iduser);
header('Content-Type: application/json');
echo json_encode($packs);
function get_active_pack($iduser)
{
$query = "SELECT idtheme idpack, name_".LANG." name FROM ".PREFIX."packs_activ pa LEFT JOIN ".PREFIX."packs p ON pa.idtheme=p.id ANS statut = 1 AND iduser = $iduser";
try{
$requete = $db -> prepare($query) ;
$requete->execute() ;
$res = $requete -> fetchAll();
$idpack = $res[0] -> idpack;
$pack['id'] = $idpack;
$pack['name'] = $res[0] -> name;
$query = "SELECT id, ".LANG."_phrase phrase FROM ".PREFIX."phrases WHERE idtheme = $idpack";
try{
$requete = $db -> prepare($query) ;
$requete->execute() ;
$phrases = $requete -> fetchAll();
foreach ($phrases as $phrase)
{
$listphrases[$phrase -> id] = $phrase -> phrase;
}
$keys = array_keys($listphrases);
shuffle($keys);
foreach($keys as $key) {
$new[$key] = $listphrases[$key];
}
$pack['phrases'] = $new;
return ($pack);
}catch(Exception $e){
echo " Erreur ! ".$e->getMessage();
echo " Les datas : " ;
}
}
je récupère bien mes données, mais je n'arrive pas à exploite les phrases, voici ce que me donne la console
Object { id: "2", name: "Thème 2", phrases: Object { 1: "phrase1843", 2: "phrase2"}}
thème Thème 2 et phrases [object Object]
id: 0 phrase :[object Object]
a 0 b [object Object]
c 0 d [object Object]
Qu'est-ce que je fais mal ? Pourquoi je ne récupère pas mes phrases ??
Merci d'avance pour le coup de pouce ! :-)
1 réponse
-
ModérateurBonjour,
Dans tes consoles.log tu mixe du "string" avec des objets... d'où l'affichage que tu obtiens....
Essayes plutot ça :success: function(data){ console.log(data); var theme = typeof(data.name)!='undefined' ? data.name : null; var phrases = typeof(data.phrases)!='undefined' ? data.phrases : null; console.log("thème "+theme+" - phrases :"); console.log(phrases); phrases.each(function(id, ph) { console.log("id: "+id+" - phrase :"); console.log(ph); ph.each(function (a, b) { console.log("a "+a+" - b :"); console.log(b); }); }); }