Problème tableau php -> javascript [RESOLU] - Java - Programmation
Marsh Posté le 06-07-2010 à 17:18:45
Bon déjà Javascript et Java c'est pas la meme chose, t'es donc pas dans la bonne cat.
Ensuite ton code m'a l'air un peu embrouillé, tu déclares $i dans une balise PHP donc coté serveur, et ensuite tu utilises i en javascript donc coté client. Or coté client il ne saura pas ce que c'est i, car pour lui ca n'a jamais été initialisé. Si c'est bien le meme code que tu utilises (j'veux dire, si tu nous as pas passé un version "reduite" ou tu enlèves les trucs que tu penses inutiles), l'erreur "première" vient surement de là (j'dis pas que t'en auras pas d'autres après, déjà PHP j'connais pas trop donc bon).
Bref, essaies ca:
tableau[<?php echo $i;?>]=new array('<?php echo $data_chambre_prise[$i][0];?>', '<?php echo $data_chambre_prise[$i][1];?>' ); |
à la place de
num_temp = '<?php echo $data_chambre_prise[$i][0];?>'; |
Marsh Posté le 06-07-2010 à 18:12:27
Sinon, la fonction php json_encode() encode un tableau PHP en l'équivalent javascript.
Tu fais donc :
Code :
|
Il faut quand même tester que le tableau n'est pas vide, tout ça avant.
Sinon, pour utiliser firebug sans l'installer, tu peux regarder du coté de firebug lite
http://getfirebug.com/firebuglite
Marsh Posté le 06-07-2010 à 23:05:28
Désolé pour la catégorie.
Je vais test json_encode demain.
Merci pour firebug lite !
Marsh Posté le 07-07-2010 à 09:30:23
J'avoue que je n'arrive pas trop à me servir de la fonction json_encode, quelques précisions serait les bienvenus.
Marsh Posté le 07-07-2010 à 10:23:38
Tu as regardé la doc ?
http://php.net/manual/fr/function.json-encode.php
En gros tu as un tableau PHP :
Code : |
Tu fais ensuite dans tes balises script
Code :
|
Et ça te donne
Code :
|
Marsh Posté le 07-07-2010 à 11:10:22
En fait cela vient de l'encodage qui n'est pas utf8... mais j'ai pas compris grand chose à propose de l'encodage...
Marsh Posté le 07-07-2010 à 11:25:53
anartetsuo a écrit : En fait cela vient de l'encodage qui n'est pas utf8... mais j'ai pas compris grand chose à propose de l'encodage... |
Tu peux être plus précis ?
Il y a les fonctions utf8_encode et utf8_decode, mais il vaut mieux configurer correctement les encodages.
Marsh Posté le 07-07-2010 à 12:38:01
Pas vraiment, objectivement j'ai pas compris grand chose dans l'encodage.
Je vais quand même essayer: en fait, pour répondre à ta précédente question, effectivement j'avais regardé la doc.
J'ai vus entre autre que cette fonction ne marche que pour de l'utf8.
Comme la fonction ne marchait pas, j'ai regarder un peu, et donc ma réponse disant que ça ne marche pas à cause de l'encodage vient du fait que j'ai vu dans notepad++ que l'encodage était en ANSI.
Je sais pas si ça à un rapport , et la marche à suivre pour résoudre le problème (encodée en UTF8 change mes accents par, je suppose, leurs équivalents en UTF8).
Marsh Posté le 07-07-2010 à 16:30:10
Bon, la fonction json marche bien, j'arrive à récupérer le tableau en javascript.
(j'ai mis du temps à répondre, car ça ne marchais pas, j'ai du tester séparément la fonction json, et l'integration dans le javascript, pour voir que cette partie marchait bien et que l'erreur était ailleur.
Merci à vous deux.
Marsh Posté le 06-07-2010 à 16:55:24
J'ai encore besoin de vous (la fin du stage arrive à grand pas, j'ai de moins en moins le temps de résoudre mes problèmes par moi-même.)
Suite à la requête, dont j'ai d'ailleurs du me faire aider (ici, encore merci) pour réussir, j'ai un tableau avec les numéro des chambres, et le nombre de places disponibles. Tout ça provient donc de Mysql.
Pour empecher de valider le formulaire en cas d'erreur (affecter deux élèves à une chambre dont il ne reste qu'une place), j'ai besoin de ce tableau PHP en JAVASCRIPT.
Voila ou j'en suis après une aprèm à essayer tout et n'importe quoi : (je vous épargne les fioritures)
var num_temp;
var nb_temp;
var tableau = new Array();
<?php
for($i=0;$i<count($data_chambre_prise);$i++)
{
?>
num_temp = '<?php echo $data_chambre_prise[$i][0];?>';
nb_temp = '<?php echo $data_chambre_prise[$i][1];?>';
tableau[i]=new array(""+num_temp+"", ""+nb_temp+"" );
<?php
}
?>
Précisions :
- $data_chambre_prise contient bien les données sur les chambres
- le script plante à partir de la ligne tableau[i]=... (donc la dernière ligne de la boucle)
- je peux pas utiliser firebug (contrainte de stage)
- Je suis relativement assez mauvais en javascript, mais je pense que ça se voit...
Si quelqu'un arrive à me trouver ce qui ne va pas...
(ps : je ne vais pas répondre avant une heure, retour à la casa.)
Message édité par anartetsuo le 07-07-2010 à 16:30:45