convertir php tableau associatif dans l'objet javascript
Je suis en train de charger Chinois mots clés, et leurs traductions en anglais, car les valeurs à partir d'une base de données dans un tableau php alors je peux les utiliser sur le côté client en JavaScript. Donc je charge le PHP clé:des paires de valeurs dans le tableau de JavaScript et d'essayer de sortir les résultats comme valeur de la clé de la paire en tant que tel:
stuff : Ni, You
stuff : Ta, Him or Her
stuff : Wo, I
Chinois et anglais mots sont chargés dans une base de données relationnelle.
PHP:
$wordsArray = array();
while ($row = $sql->fetch_assoc()) {
$wordsArray[$row['chinese']] = $row['english'];
}
Javascript: Ici, je veux l' $.chacun à la sortie de la clé comme une chaîne de caractères, et non d'un numéro d'index. Alors, quand j'ai essayé var words = [<?php echo '"'.implode('","', $wordsArray).'"' ?>];
comme un tableau, je l'ai eu:
stuff : 0, You
stuff : 1, Him or Her
stuff : 2, I
Quand je suis vraiment à la recherche de:
stuff : Ni, You
stuff : Ta, Him or Her
stuff : Wo, I
J'ai donc changé words
à être un objet de sorte que $.each
pourrait clé de sortie comme une chaîne de caractères:
var words = {<?php echo '"'.implode('","', $wordsArray).'"' ?>};
$.each(words, function(key, value) {
console.log('stuff : ' + key + ", " + value);
});
Qui déclenche une erreur: SyntaxError: Unexpected token ,
OriginalL'auteur Growler | 2014-01-16
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser json_encode() de faire
array
comme unjson object
comme,Oui, vous avez raison, j'ai enlevé les guillemets et
commented
.OriginalL'auteur Rohan Kumar
J'ai regardé beaucoup pour une solution élégante pour résoudre ce problème sans faire changer les choses sur javascript ou tout simplement remplacer les guillemets par preg_replace (pour le cas où les valeurs contiennent des citations) et à la fin de le faire par moi-même. même si c'est trop tard, j'espère que ça aiderait ceux qui sont à la recherche pour la même solution.
utilisation:
résultat:
OriginalL'auteur user1968819
J'ai juste changé un peu les choses pour le rendre plus compatible (ligne 3 et 29):
OriginalL'auteur FredP
La réponse de Rohan Kumar est excellent que utilise jQuery pour afficher ses résultats.
Vous pouvez le faire plus facile et plus petit, voir ci-dessous.
Vous offre une ligne de résultat (Objet ▶), en cliquant sur l' ▶ ouvrir l'objet et affiche son contenu.
OriginalL'auteur Harm