Passage d'un tableau PHP/Mysql a un tableau javascript identique

Fermé
chevert35 Messages postés 15 Date d'inscription dimanche 28 mai 2017 Statut Membre Dernière intervention 22 novembre 2018 - 28 mai 2017 à 17:09
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 - 30 mai 2017 à 14:45
Bonjour,

J'ai besoin de transférer un tableau PHP/MySQL en un même tableau JS (bidimensionnel, NUM ou ASSOC). J'ai beaucoup cherché sur les forums mais je n'ai pu utiliser les exemples qui partent d'une entrée monodimensionnelle, tapée en dur sur le clavier et d'une sortie sur l'écran. Or, je ne peux pas intervenir pendant l'exécution du code.
En faisant json_encode du résultat de ma requête, j'obtiens une chaîne qui me parait convenable :
$leg =[["Toto", "750", .................."f3456"],["Jean", "650", ......... "f4182"], [......]]
Là je suis planté : comment entrer dans mon script JS pour utiliser les valeurs ci-dessus ? json.parse ou autre chose ; et remplissage des cases du tableau JS ?

Grand merci


2 réponses

Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
28 mai 2017 à 17:38
Bonjour,

Ta variable devrai être plutôt :
$leg = 'tableau = [["Toto", "750", .................."f3456"],["Jean", "650", ......... "f4182"], [......]];';


Puis il te suffit de placer une structure « echo » de ta variable « $leg » entre une balise « script ».
0
chevert35 Messages postés 15 Date d'inscription dimanche 28 mai 2017 Statut Membre Dernière intervention 22 novembre 2018
30 mai 2017 à 10:31
Merci Felice.
J'ai bien l'expression que tu as écrite ci-dessus, mais je n'arrive pas à la faire passer entre mes balises <script>. Que faut-il faire, parser ? et comment ?
Mon but final est de passer de :

<?PHP
.......
$tab_php[$i1][$j1] = "toto";
ou $tab_php[$i2][$j2] = 1234.56;
........
?>

à

<script>
....
tab_js[i1][j1] = "toto";
ou tab_js[i2][j2] = 1234.56;
....
</script>

Il me manque quelques lignes de codes.

Merci encore
0
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
Modifié le 30 mai 2017 à 10:43
Ainsi :

<script>
....
<?php
echo 'tab_js[i1][j1] = "toto";';
echo 'tab_js[i2][j2] = 1234.56;';
?>

....
</script>
0
Utilisateur anonyme > Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017
30 mai 2017 à 11:22
Bonjour

Quel intérêt de remplacer du texte par un echo de ce même texte en PHP ????
0
chevert35 Messages postés 15 Date d'inscription dimanche 28 mai 2017 Statut Membre Dernière intervention 22 novembre 2018 > Utilisateur anonyme
30 mai 2017 à 11:45
Merci à vous !

Mes exemples étaient pour illustrer mon problème . En fait, mes données sont trop volumineuses pour une intervention au clavier.

Mais je crois avoir trouvé (enfin !) en partant de la réponse de Felice du 28 mai :

<script type="text/javascript">
var tab_js =<?PHP echo json_encode($tab_php); ?>;
var v3 = tab_js[5][3];
alert(v3); // pour contrôle
</script>

Si je ne trouvais pas ça sur le web, c'est peut-être que tout le monde est censé connaître ça...
Merci
0
Utilisateur anonyme
30 mai 2017 à 11:35
Bonjour

Si tu as un tableau php :
  $leg =[["Toto", "750","f3456"],["Jean", "650", "f4182"]];


et que tu veux le récupérer dans du javascript, tu peux faire :

<script>
var tableau_js= <?php echo json_encode($leg); ?>;
</script>

puisque le json_encode te donne une chaîne directement compatible avec JS.
0
Merci le père !

Si je ne venais pas de trouver, tu mettais fin à des journées de recherches infructueuses !

C'est la ligne de code qui me manquait.
0
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11 > chevert35
30 mai 2017 à 12:01
Eux ce ce que je te donne depuis le début…

Tu écris ton Javascript sous forme de chaine de caractère dans PHP puis tu l'imprimes, c'est tout.

Ici ton soucis c'est que tu ne comprends pas encore le fonctionnement du langage serveur qui ne fait en fait que générer une page HTML, JS inclus.
0
Utilisateur anonyme > Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017
30 mai 2017 à 14:14
Bonjour

Non, ce n'est pas ce que tu donnes.
chevert avait au départ un tableau php et tout son problème, c'était le le récupérer en js.
Dans tes réponses, tu ne pars pas d'un tableau php, tu l'écris directement en javascript. Tu n'utilises php que pour faire des 'echo' de choses qui pouvaient être écrites directement en javascript.

"Tu écris ton Javascript sous forme de chaine de caractère dans PHP puis tu l'imprimes, c'est tout"
C'est absurde. Si tu disposes du code javascript, tu l'écris directement. Le mettre dans une chaîne php puis en faire un echo est un travail inutile pour le programmeur comme pour l'interpréteur. Et une source d'erreurs.
0
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
Modifié le 30 mai 2017 à 14:46
Bonjour le père,

En toute franchise, je n'ai pas le temps pour ces enfantillages.

Ici il a convertie son tableau PHP en chaîne de caractère avec la fonction « json_encode » voir la doc :
https://www.php.net/manual/en/function.json-encode.php

Son seul problème qui lui restait était de ne pas retourner uniquement le tableau JS. Parce que comment va t'il le traiter ? Il fallait donc le placer dans une variable…

Eh bien entendu que si c'était directement brut, il n'a pas besoin d'utiliser une structure echo de PHP…
0