[RESOLU] Problème tableau php -> javascript

Problème tableau php -> javascript [RESOLU] - Java - Programmation

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
Reply

Marsh Posté le 06-07-2010 à 16:55:24   

Reply

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];?>';
 nb_temp = '<?php echo $data_chambre_prise[$i][1];?>';
 tableau[i]=new array(""+num_temp+"", ""+nb_temp+"" );


---------------
C'était vraiment très intéressant.
Reply

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 :
  1. <script type="text/javascript">
  2.  var tableau=<?= json_encode($data_chambre_prise) ?>;
  3. </script>


 
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

Reply

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 !

Reply

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.  
 

Reply

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 :
  1. $tableau = array('a','test',array('douze'=>12,'vingt-quatre'=>24));


Tu fais ensuite dans tes balises script

Code :
  1. var tableau = <?php echo json_encode($tableau); ?>;


Et ça te donne

Code :
  1. var tableau = ['a','test',{'douze':12, 'vingt-quatre':24}];

Reply

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...

Reply

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.

Reply

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).

Reply

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed