[RESOLU] Problème d'intégration de php dans JS

Eléphanteau du PHP | 31 Messages

12 nov. 2012, 11:52

Bonjour

Je souhaiterais remplir les donnés d'un graph grâce à un for .... car au départ c'était comme cela:

[javascript]
data: [
[document.forms.f_area.select_area.options[0].value, return_areas[0]],
[document.forms.f_area.select_area.options[1].value, return_areas[1]],
[document.forms.f_area.select_area.options[2].value, return_areas[2]],
][/javascript]

Ce qui marche parfaitement, mais ... c'est en dur quoi .... car la j'ai trois données mais ca peut varier ....

Donc j'ai pensé à faire quelque chose comme ça:
					
data: [
	<?php $i =0; 
	foreach ($tab_area_php as $areas) {
		echo "[ '$tab_area_php[$i]'," ;?> return_areas[<?php echo $i; ?>]],
		<?php 
		$i = $i +1;
	} ?>
]
Mais ca ne marche pas :(

Pourtant quand j'affiche la source de la page j'ai bien: (exactement sous cette forme)

[javascript]data: [
[ 'AMERICAS
', return_areas[0]],
[ 'APAC
', return_areas[1]],
[ 'EMEA
', return_areas[2]],
][/javascript]


Je pense que le probleme vient de la .... il faudrait empecher le retour à la ligne mais je ne vois pas comment car je ne sais meme pas pourquoi il en fait un apres [$i] ....

Donc voila si quelqu'un pourrait m'éclairer ca serait sympa =)


PS: J'ai essayé de mettre ca dans le code (donc la meme chose qu'au dessus mais sans les retours a la ligne et ca marche tres bien)
[javascript]data: [
[ 'AMERICAS', return_areas[0]],
[ 'APAC', return_areas[1]],
[ 'EMEA', return_areas[2]],
][/javascript]


a+

ViPHP
xTG
ViPHP | 7331 Messages

12 nov. 2012, 12:29

Ton code PHP ne présente aucun retour à la ligne, ce retour est donc dans la donnée $tab_area_php[$i]. ;)

Eléphanteau du PHP | 31 Messages

12 nov. 2012, 12:38

hummm

et bien voila comment je rempli ce fameux tableau:
		<?php //On va chercher les données dans un fichier .txt
			$rows = file("datas/LArea.txt", FILE_SKIP_EMPTY_LINES);
			$tab_area_php = array();
			foreach($rows as $value){
				$tab_area_php[] = $value;
			}			
		?>

Le fichier LArea.txt:

AMERICAS
APAC
EMEA


Une donnée par ligne .....


Il y a un probleme avec ca ?

ViPHP
ViPHP | 2577 Messages

12 nov. 2012, 12:48

<?php
   echo 'data: [',"\n";
   $i =0; 
   foreach ($tab_area_php as $areas) {
        echo "  [ '",$tab_area_php[$i],"', return_areas[",$i,']]',"\n";
        $i = $i +1;
   } 
   echo ']';
?>
En ne mélangeant pas le php avec le code javascript, tu aurais un meilleure visibilité de ce que fait le traitement.
Pour le saut de ligne dont tu ignores l'origine, il provient du saut entre ?> et <?PHP
Pour le problème soulevé par xTG, tu peux essayer $tab_area_php[] = trim($value);, il y a peut être un problème de "\r\n" dans ton fichier (fin de ligne msdos vs fin de ligne unix)
(j'espère ne pas mettre trompé dans le bout de script)

Eléphanteau du PHP | 31 Messages

12 nov. 2012, 13:00

Ca marche en rajoutant le trim() !

Merci !

Par contre avec le php, que php la, et bah ca marche pas alors j ai remis ce que j avais fait et la ca marche !

Mais merci beaucoup pour l astuce avec le trim ! =)