Recuperation de variable php en JS

Fermé
DextroyMax Messages postés 793 Date d'inscription mardi 31 août 2010 Statut Membre Dernière intervention 21 septembre 2014 - 7 août 2014 à 10:53
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 8 août 2014 à 11:38
Bonjour,

Je fais face a un soucis plutôt complexe dans mon code, et après avoir épuiser moultes ressources, je me tourne vers vous.

Ce que j'essaye de faire se décompose en plusieurs parties.

J'ai une fonction php qui reçoit des variables dans $_SESSION, et qui stock le tout avec une boucle for dans plusieurs tableau. Jusque la, tout va bien.

Je me retrouve donc avec 3 tableaux,

$table_final
$table_prestige
$table_nom_ets

Le premier contenu des adresses, le second des valeurs, et le troisième des noms de restaurants.

Ensuite, je fais un tout vieux et tout moche echo d'une fonction javascript dans ma fonction en php

echo '<script type="text/javascript">

google_maps();

</script>'

Cette fonction javascript, qui porte un nom plutôt explicite, permet de crée une carte google maps, et mettre des points sur la carte, selon des adresses stocker par le php.

Bien entendu, pour récupérer mes variables $table_final, $table_prestige et $table_nom_ets, je met chacun des tableaux dans des tableaux en javascript avec ces trois petites lignes

function google_maps() {

var table_final = '<?php implode("<>", $table_final); ?>'.split('<>');
var table_prestige = '<?php implode("<>", $table_prestige); ?>'.split('<>');
var table_nom_ets = '<?php implode("<>", $table_nom_ets); ?>'.split('<>');

}

Cependant, et c'est la que je me trouve dans une impasse, c'est que la partie en php contenu dans le javascript, echo dans le php, ne marche pas du tout.

J'ai très bien compris que le php étais exécute cote serveur, et le javascript cote client. Je cherche donc un moyen de passer mes 3 tableaux en php dans mon javascript, qui fonctionnerais avec toute ces contraintes...

Je vous remercie d'avance, O grand sauveur qui lira mon post.

Cordialement.
A voir également:

3 réponses

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
7 août 2014 à 15:50
Bonjour,

Cette fonction
function google_maps() {

var table_final = '<?php implode("<>", $table_final); ?>'.split('<>');
var table_prestige = '<?php implode("<>", $table_prestige); ?>'.split('<>');
var table_nom_ets = '<?php implode("<>", $table_nom_ets); ?>'.split('<>');

} 

est-elle dans un fichier .js inclus côté client, ou dans un fichier .php ?

Xavier
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
8 août 2014 à 11:38
La fonction json_encode retourne null si les données ne sont pas encodées en UTF-8.

Tu peux encoder les éléments de ton tableau avec la fonction array_map :
var table_final = <?php echo json_encode(array_map(utf8_encode, $table_final)); ?>;


Source : https://www.php.net/manual/fr/function.json-encode.php#90407

Bonne journée
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
7 août 2014 à 11:02
Salut,

Essaye plutot comme ceci :
var table_final = <?php echo json_encode($table_final); ?>;


Bonne journée
-1
DextroyMax Messages postés 793 Date d'inscription mardi 31 août 2010 Statut Membre Dernière intervention 21 septembre 2014 57
7 août 2014 à 11:05
Plop Pitet

Merci pour ta reponse.

Les variables sont null...

var table_final = null;
var table_prestige = null;
var table_nom_ets = null;


Par contre excellente idée pour le json_encode, j'y avais pas pense.

Peut-être que ma $table_final est vide ?

Cordialement.
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
8 août 2014 à 11:29
As tu donc essayer d'afficher le contenu de ta variable ?
<?php var_dump($table_final); ?>
0