2 votes

comment accéder aux données d'une ligne de base de données stockées dans un objet javascript ?

Ma première question. Normalement, je me renseigne par moi-même, mais là, je suis battu.

Après une demande d'envoi par ajax, j'ai utilisé ce code php pour obtenir toutes les lignes et les colonnes de ma base de données :

$sql = "SELECT * FROM categories";
$result=$conn->query($sql);  
$arr = $result->fetch_all(MYSQLI_ASSOC);

print_r($arr)

m'a donné cette sortie :

Array ( [0] => Array ( [cat_id] => 1 [cat_name] => Friends [checkbox] => checked ) [1] => Array ( [cat_id] => 2 [cat_name] => Favourites [checkbox] => checked ) [2] => Array ( [cat_id] => 3 [cat_name] => Drink [checkbox] => checked ) [3] => Array ( [cat_id] => 4 [cat_name] => Food [checkbox] => checked )
<br>

Je l'ai encodé en utilisant :

echo json_encode($result);

J'ai ensuite obtenu les données dans une variable js en utilisant :

result = Request.responseText;
var categories = JSON && JSON.parse(result) || $.parseJSON(result);

Comment puis-je accéder aux lignes de données stockées dans les catégories ? Je ne peux que présumer que le JSON a fonctionné comme catégories est maintenant un type [Object object] mais je ne sais pas comment vérifier autrement.

1voto

Quagaar Points 1041

categories doit être un tableau. Pour tester cela, faites

console.log(categories.length);

Cela devrait permettre d'imprimer la taille du tableau (nombre de lignes). Si cette méthode renvoie le résultat attendu, utilisez une simple commande for boucle pour itérer sur les lignes :

for (var i = 0, c = categories.length; i < c; ++i) {
    console.log(categories[i].cat_name);
}

Ou, alternativement, utilisez Array.forEach avec une fonction de rappel :

categories.forEach(function(category) {
    console.log(category.cat_id + ' = ' + category.cat_name);
});

0voto

Bossfi Points 11

Je me suis réveillé ce matin et j'ai réparé cela moi-même en 15 minutes, après avoir passé des heures à regarder cela la veille.

echo json_encode($result); //wrong variable

devrait être :

echo json.encode($arr); // correct variable 

Note à moi-même : dormir dessus !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X