Recuperation de variable php en JS

DextroyMax Messages postés 793 Date d'inscription   Statut Membre Dernière intervention   -  
Pitet Messages postés 2845 Statut Membre -
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 3742 Statut Membre 1 011
 
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 2845 Statut Membre 527
 
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 2845 Statut Membre 527
 
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   Statut Membre Dernière intervention   57
 
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 2845 Statut Membre 527
 
As tu donc essayer d'afficher le contenu de ta variable ?
<?php var_dump($table_final); ?>
0