Probleme d'utilisation des variables je crois (PHP + SVG)

Probleme d'utilisation des variables je crois (PHP + SVG) - PHP - Programmation

Marsh Posté le 29-04-2004 à 20:16:36    

Bonjour,
j'ai un petit soucis,
j'ai ce code :  

Code :
  1. <text x="5" y="30" style="font-size:24;fill-opacity:0.7;font-weight:bold;"><?php echo $graph_title ?></text>
  2. <g transform="translate(200 170) scale(0.5 0.5)">
  3. <g transform="translate(200, 300)" style="font-size: 30">
  4. <text x="100" y="-20" style="text-anchor:middle">100 %</text>
  5. <rect width="200" height="500" style="fill:red" />
  6. <text x="100" y="540" style="text-anchor:middle">&gt; 0 année</text>
  7. </g>
  8. <g transform="translate(430, 320)" style="font-size: 30">
  9. <text x="100" y="-20" style="text-anchor:middle">96 %</text>
  10. <rect width="200" height="480" style="fill:blue" />
  11. <text x="100" y="520" style="text-anchor:middle">&gt; 1 année</text>
  12. </g>


 
que je veux transformer afin d'utiliser une boucle pour dessiner les rectangles, et pour l'instant je tente de faire la boucle à la main, histoire de voire comment elle tournerait (avec un for normalement).
Mon code donne cela :  

Code :
  1. <text x="5" y="30" style="font-size:24;fill-opacity:0.7;font-weight:bold;"><?php echo $graph_title ?></text>
  2. <g transform="translate(200 170) scale(0.5 0.5)">
  3. $x = 100;
  4. $y = 100;
  5. <g transform="translate(<? echo $x;  echo $y; ?> )" style="font-size: 30">
  6. <text x="50" y="-20" style="text-anchor:middle">100 %</text>
  7. <rect width="200" height="500" style="fill:red" />
  8. <text x="100" y="500" style="text-anchor:middle">&gt; 0 année</text>
  9. $x = 200;
  10. $y = 200;
  11. <g transform="translate(<? echo $x;  echo $y; ?> )" style="font-size: 30">
  12. <text x="$x" y="$y" style="text-anchor:middle">90 %</text>
  13. <rect width="200" height="500" style="fill:green" />
  14. <text x="$x" y="500" style="text-anchor:middle">&gt; 1 année</text>
  15. </g>


 
mais alors les translate ne fonctionnent pas, et je me retrouve avec mes 2 rectangles superposés.
 
J'ai tenté de mettre la blaise <? devant les $x=100 et de la fermer juste apres, mais alors ni les barres ni le titre ne s'affiche ...
Je ne comprend pas pourquoi.
 
 
Merci pour votre aide,
 :hello:


Message édité par gee le 30-04-2004 à 14:02:30

---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 29-04-2004 à 20:16:36   

Reply

Marsh Posté le 30-04-2004 à 06:45:25    

up


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 30-04-2004 à 09:27:20    

c'est quoi ce language avec des balise text, g... :??:

Reply

Marsh Posté le 30-04-2004 à 09:30:59    

c'est du SVG ? C'est pareil en tout cas

Reply

Marsh Posté le 30-04-2004 à 10:01:51    

m'en a tout l'air
 
qqun aurait une bonne page de presentation sur SVG?

Reply

Marsh Posté le 30-04-2004 à 10:19:32    

chacal_one333 a écrit :

m'en a tout l'air
 
qqun aurait une bonne page de presentation sur SVG?


j'en ai plein, j'ai fait 3 mois la-dessus. commence par http://www.w3.org/TR/SVG/
 
si tu as des questions n'hésite pas

Reply

Marsh Posté le 30-04-2004 à 10:52:27    

merci :)

Reply

Marsh Posté le 30-04-2004 à 13:30:07    

Oui c'est du PHP + SVG ;)
 
mais je ne trouve pas la solution à mon problème actuellement.

Reply

Marsh Posté le 30-04-2004 à 13:45:28    

c'est plutôt un problème de SVG... tu mets  
 

Citation :

(<? echo $x;  echo $x; ?> )"


 
2 fois $x, puis 2 fois $y, c'est normal ?

Reply

Marsh Posté le 30-04-2004 à 13:53:01    

c'est pour le teste la,
ca ne change rien que je mette x et y ou bien 2 fois x.
 
J'avais teste l'autre manière avant sans resultat.
 
mais la je n'ai pas pas effectivement besoin de mettre y a 100 et x a 200.

Reply

Marsh Posté le 30-04-2004 à 13:53:01   

Reply

Marsh Posté le 30-04-2004 à 14:02:49    

j'ai modifie le sujet pour que ce probleme ne soit plus.

Reply

Marsh Posté le 30-04-2004 à 14:18:14    

je pense que tu as oublié des balises <?php ..?> un peu partout et surtout là

Code :
  1. ...
  2.    $x = 100;
  3.    $y = 100;
  4. ...
  5.    $x = 200;
  6.    $y = 200;
  7. ...
  8.    <text x="$x" y="$y" style="text-anchor:middle">90 %</text>
  9. ...
  10.    <text x="$x" y="500" style="text-anchor:middle">&gt; 1 année</text>
  11. ...


Reply

Marsh Posté le 30-04-2004 à 14:25:08    

Merci je testerais cela des que je rentrerai,
 
comme dit au dessus j avais testé avec  
<?
 $x = 100;  
 $y = 100;  
?>
 
 
<g transform="translate(<? echo $x;  echo $y; ?> )" style="font-size: 30">  
 
 
mais à ce moment la plus rien ne s'affichait.
 
Je vais tester avec <?php.
 
Merci

Reply

Marsh Posté le 30-04-2004 à 14:56:22    

en fait, je ne suis pas sur de ta réponse, pourrais tu la preciser STP anapajari.

Reply

Marsh Posté le 30-04-2004 à 15:24:40    

le <?php et <? sont équivalents ( si le short tag est à oui).
Par contre si tu ne mets pas de <? ... ?> autour de

Code :
  1. $x = 100; 
  2. $y = 100;


ton instruction n'est pas interpretée, donc la valeur de x et y n'est pas initialisée ou changée.
Ensuite il faut que tu fasses un echo/print chaque fois que tu veux afficher une valeur:

Code :
  1. <text x="<?php echo $x; ?>" y="<?php echo $y; ?>" style="text-anchor:middle">90 %</text>

Reply

Marsh Posté le 30-04-2004 à 16:18:16    

oki je te remercie, je suis chez moi maintenant je peux donc tester,


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 30-04-2004 à 16:31:41    

C'est toujours pareil :(
 
avec le code
 

Code :
  1. <?php
  2. $x = 100;
  3. $y = 100;
  4. ?>
  5. <g transform="translate(<100  100)" style="font-size: 30">
  6. <text x="<100>" y="<100>" style="text-anchor:middle">100 %</text>
  7. <rect width="200" height="500" style="fill:red" />
  8. <text x="100" y="500" style="text-anchor:middle">&gt; 0 année</text>


 
aussi bien qu'avec

Code :
  1. <?php
  2. $x = 200;
  3. $y = 200;
  4. ?>
  5. <g transform="translate(<?php echo $x;  echo $y; ?> )" style="font-size: 30">
  6. <text x="<?php echo $x; ?>" y="<?php echo $y; ?>" style="text-anchor:middle">90 %</text>
  7. <rect width="200" height="500" style="fill:green" />
  8. <text x="$x" y="500" style="text-anchor:middle">&gt; 1 année</text>
  9. </g>


 
je n'ai pas de graphe :(
 
je ne comprend pas pourquoi le <?php , me bloque la suite :(


Message édité par gee le 30-04-2004 à 16:32:06

---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 30-04-2004 à 16:43:09    

Ton code est complet la ?
Tu serais pas deja dans une balise SVG ?
Car si j'essaye de mettre telquel le premier code que tu donnes chez moi, j ai juste des trucs qui s'affichent comme ca :
 
  100 %   > 0 année    96 %   > 1 année  

Reply

Marsh Posté le 30-04-2004 à 16:45:44    

non le code n'est pas complet,
 
mais je peux le mettre en entier :
 
PS : je ne me sers pas encore de tout dedans
 

Code :
  1. <?php
  2. $graph_title = 'Statistique du test machin';
  3. $graph_desc = 'Sur ce diagramme nous pouvons apprecier les differents avis des sondés';
  4. header("Content-type: image/svg+xml" );
  5. echo '<?'; ?>xml version="1.0" encoding="iso-8859-1"?>
  6. <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20000303 Stylable//EN"  "http://www.w3.org/TR/2000/03/WD-SVG-20000303/DTD/svg-20000303-stylable.dtd">
  7. <svg xml:space="preserve" width="2000" height="3200">
  8. <title><?php echo $graph_title ?></title>
  9. <desc><?php echo $graph_desc ?></desc>
  10. <style>
  11. <![CDATA[
  12. text {
  13.  font-family: arial,helvetica,sans-serif;
  14.  fill: black;
  15.  }
  16. // ]]>
  17. </style>
  18. <defs>
  19. <!-- we define our shadow filter -->
  20. <filter id="shadow" width="200%" height="200%">
  21.  <feGaussianBlur in="SourceAlpha" stdDeviation="2" result="blur"/>
  22.  <feOffset in="blur" dx="1.5" dy="1.5" result="offsetblur"/>
  23.  <feMerge>
  24.   <feMergeNode in="offsetblur"/>
  25.   <feMergeNode in="SourceGraphic"/>
  26.  </feMerge>
  27. </filter>
  28. </defs>
  29. <text x="5" y="30" style="font-size:24;fill-opacity:0.7;font-weight:bold;"><?php echo $graph_title ?></text>
  30. <g transform="translate(200 170) scale(0.5 0.5)">
  31. <?php
  32. $x = 100;
  33. $y = 100;
  34. ?>
  35. <g transform="translate(<100  100)" style="font-size: 30">
  36. <text x="<100>" y="<100>" style="text-anchor:middle">100 %</text>
  37. <rect width="200" height="500" style="fill:red" />
  38. <text x="100" y="500" style="text-anchor:middle">&gt; 0 année</text>
  39. <?php
  40. $x = 200;
  41. $y = 200;
  42. ?>
  43. <g transform="translate(<?php echo $x;  echo $y; ?> )" style="font-size: 30">
  44. <text x="<?php echo $x; ?>" y="<?php echo $y; ?>" style="text-anchor:middle">90 %</text>
  45. <rect width="200" height="500" style="fill:green" />
  46. <text x="$x" y="500" style="text-anchor:middle">&gt; 1 année</text>
  47. </g>
  48. </g>
  49. ?>
  50. </svg>


 
edit mauvais copy / paste :)
 
Merci pour l'aide


Message édité par gee le 30-04-2004 à 17:09:21

---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 30-04-2004 à 16:49:52    

deja il te manque '; à ta deuxieme ligne.
Mais la je rentre en rdv je peux pas voir plus :/

Reply

Marsh Posté le 01-05-2004 à 09:29:36    

:hello:


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 01-05-2004 à 10:54:01    

Code :
  1. <?php
  2.    $x = 200;
  3.    $y = 200;
  4.    ?>
  5.    <g transform="translate(<?php echo $x.' '.$y; ?> )" style="font-size: 30">
  6.    <text x="<?php echo $x; ?>" y="<?php echo $y; ?>" style="text-anchor:middle">90 %</text>
  7.    <rect width="200" height="500" style="fill:green" />
  8.    <text x="<?php echo $x; ?>" y="500" style="text-anchor:middle">&gt; 1 année</text>
  9.    </g>


 
Ca devrait aller mieux avec un espace en $x et $y dans le transform :)

Reply

Marsh Posté le 01-05-2004 à 17:18:01    

Je te remercie bien, ca marche avec cela  :ouch:  
 
Pourrais tu s'il te plait m'expliquer l'interet de l'espace dans la fonction (pour comprendre et ne pas revenir bientot) ?
 
Merci bien ratibus, et merci a tous ceux qui ont tenter de m'aider.


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 01-05-2004 à 20:22:25    

J'ai vu que les parametres de la fonction svg transform devaient être séparés par un espace (ou une virgule).
 
Or toi en faisant echo $x; echo $y; tu tu retrouve ensuite avec ça : transform(100100)
 
Donc je me suis contenté d'ajouter le séparateur pour avoir ça : transform(100 100)

Reply

Marsh Posté le 01-05-2004 à 21:59:02    

oh c'était donc aussi simple, je n'avais pas pense que les 2 echo se collaient, je n'y avaient meme pas pensé.  :pt1cable:  
 
Merci bien :hello:
 
maitenant j'ai pu bien avancer, alors que je bloquais depuis jeudi après-midi dessus sans trop savoir d'ou pouvait venir l'erreur.


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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