Transfert d'info entre php et javascript [Résolu]

fregolo52 1107 Messages postés mercredi 15 juin 2011Date d'inscription 16 juin 2018 Dernière intervention - 25 sept. 2008 à 16:46 - Dernière réponse : fregolo52 1107 Messages postés mercredi 15 juin 2011Date d'inscription 16 juin 2018 Dernière intervention
- 29 sept. 2008 à 10:07
Bonjour,

Je ne suis pas du tout un spécialiste du dév web, mais je dois apporter des évolutions à un site intranet.

Mon but est d'afficher une treeview avec des checkbox à chaque noeud.
J'ai trouvé un code sur le Net en javascript (blueshoes.org).
Les infos qui vont permettre de créer l'arbre sont dans une BDD MySQL.

Je pensais donc créer un tableau en php et le transférer dans le code javascript.
Mais j'ai l'impression d'un tableau php n'est pas un tableau javascript.
J'ai ce code de test :
<?php
$ab = array();
$ab[0] = array();
$ab[0]['caption']          = "1er noeud";
echo "<script language="javascript">alert($ab[0]['caption'] );</script>";
?>
L'alert me retourne undefine.

Est-il possible de transférer des tableaux ? Sachant que le code php et js sont dans la même page.
Est-il plus simple (plus propre) de passer par un fichier temporaire xml (je n'ai pas encore regardé ajax).

Merci
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
cs_TASIOT 20 Messages postés jeudi 18 septembre 2003Date d'inscription 26 septembre 2008 Dernière intervention - 26 sept. 2008 à 00:07
3
Merci
Bonjour,

Effectivement si tu veux uniquement que transmettre une valeur à javascript, il te suffit de la concaténer dans ta chaine envoyée à ton client, comme la expliqué extraman1.

Cependant, si tu désires exploiter comme tu veux ton tableau php en javascript, le plus simple reste pour toi d'utiliser le format de notation objet de javascript (=JSON).
Pour ce faire, rien de plus simple, modifie ton fichier comme ceci :

echo '<script type="text/javascript">var monTableauJS = eval("'.addslashes(json_encode($ab)).'");
alert(monTableauJS[0]['caption']);
</script>';

Petite explication :

Depuis php5.2.0, la fonction json_encode est en native dans php. Elle permet de convertir un tableau php en une chaine de caractère que javascript comprend et interprete via la fonction "eval". Le résultat retourné par cette fonction peut alors être utilisé comme s'il s'agissait du tableau initial php (bien sur, il ne s'agit que d'une copie en javascript).
Cette notation JSON est souvent utilisé en Ajax, plutot que d'utiliser l'xml (en réponse à ta phrase : Est-il plus simple (plus propre) de passer par un fichier temporaire xml (je n'ai pas encore regardé ajax).).

En espérant avoir été clair ^^.

Roland Dufour,
http://www.multiprog.net
Visitez mon portfolio : >> http://portfolio.multiprog.net <<

Merci cs_TASIOT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 123 internautes ce mois-ci

Commenter la réponse de cs_TASIOT
Meilleure réponse
extraman1 103 Messages postés lundi 8 septembre 2003Date d'inscription 26 décembre 2009 Dernière intervention - 26 sept. 2008 à 16:08
3
Merci
Salut,

Celui-là c'est bon j'ai testé :

echo "<script language="javascript">alert(" ".$ab[0]['caption']." ");</script>";

A++ extraman1

Merci extraman1 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 123 internautes ce mois-ci

Commenter la réponse de extraman1
extraman1 103 Messages postés lundi 8 septembre 2003Date d'inscription 26 décembre 2009 Dernière intervention - 25 sept. 2008 à 19:32
0
Merci
Salut,

Et si tu tapes ça :

echo '<script language="javascript">alert(" '.$ab[0]['caption'].' ");</script>";

A++ extraman1
Commenter la réponse de extraman1
fregolo52 1107 Messages postés mercredi 15 juin 2011Date d'inscription 16 juin 2018 Dernière intervention - 26 sept. 2008 à 09:32
0
Merci
Bonjour,

Merci pour ces infos. J'ai encore un peu de mal avec la syntaxe de ce langage.

L'exemple d'extraman1 m'afficher "Array['caption']" et pas "1er noeud".

Je vais investiguer vers json.

merci
Commenter la réponse de fregolo52
cs_TASIOT 20 Messages postés jeudi 18 septembre 2003Date d'inscription 26 septembre 2008 Dernière intervention - 26 sept. 2008 à 16:35
0
Merci
Pour info extraman1, ta seule erreur dans le précédent code était que tu avais oublié de fermer ta simple quote (=') juste après </script>.
Après mon code lui permet de gérer tout son tableau en javascript. Tout dépend après de l'utilisation exacte qu'il désire en faire. :p

Roland Dufour,
http://www.multiprog.net
Visitez mon portfolio : >> http://portfolio.multiprog.net
Commenter la réponse de cs_TASIOT
Teclis01 1423 Messages postés mardi 14 décembre 2004Date d'inscription 29 décembre 2012 Dernière intervention - 26 sept. 2008 à 17:45
0
Merci
tu peux passer simplement par un json_encode !

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Commenter la réponse de Teclis01
fregolo52 1107 Messages postés mercredi 15 juin 2011Date d'inscription 16 juin 2018 Dernière intervention - 29 sept. 2008 à 10:07
0
Merci
Merci pour votre aide. Ca m'a aider aussi a mieux appréhender la syntaxe. :)


 
Commenter la réponse de fregolo52

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.