Bonjour à tous,
Et pour commencer, merci de l'attention que vous portez à mon problème.
Mon besoin initial était de concevoir une jauge de progression.
C'est à dire une représentation graphique d'une variable PHP ($var), par rapport à un maximum donné fixé lui aussi par une variable PHP ($var_max), et le tout représenté sous forme de barre dans une div fixe, en pourcentage de la longueur de cette même div (Cf. Schéma 1).
IMPORTANT : cette jauge est dynamique (via PHP) mais "inerte" elle n'a pas vocation à faire office de pré-loader par exemple (comme certaine jauge Flash ou JS rencontrées), elle a juste pour rôle d'être une "indication graphique" fixe pour le visiteur.
Je précise que je ne souhaitais utiliser pour des raisons techniques QUE du Html/Css et PHP au début du projet. Mais autant être honnête et ne pas s'en cacher, alors en fait : je ne veux (voulais ?) pas de Javascript dans la mesure du possible.
N'étant pas familier de ce langage et n'ayant pas vraiment nécessité de l'apprendre globalement (sauf pour un ou deux projet isolés, éventuellement).
En plus de ça beaucoup de gens désactivent le Javascript, ...bref.
J'ai cherché sur Internet (Google mon grand ami, les Forums de dev, etc), mais je n'ai rien trouvé qui corresponde à mon problème. J'ai même cherché une librairie JS qui me permette de faire ça "tout seul", qui réponde à mes besoins...Probablement qu'il en existe une mais j'ai du passer à coté (et je préfèrerais me passer de JS donc, si possible).
http://img217.imageshack.us/img217/4535/testrq.png
Schema 1 : Voilà, une image peut-être plus parlante que ma description plus haut ?
Les valeurs en pourcentages sont fictives et au pifomètre pour l'exemple.
Voici mon code HTML actuel pour tenter de répondre à mon besoin.
1° Mon code n'est pas fonctionnel (ni conforme dans l'exemple, j'ai fait ça pour que vous compreniez ce que je voulais globalement faire). Ce n'est plus faisable à partir du moment ou j'essaie d'entrer un paramètre "width" dans une balise div, voir plus loin.
2° Si vous vous dites grosso modo "Oh, bon sang ! Qu'est-ce qu'il a essayé de faire ?!"
Paniquez-pas, j'explique :
- Comme vous pouvez le constater dans le code PHP :
$var : ma variable de la quantité "possédée", dans cet exemple 5660.
$var_max : la variable de la quantité maximale de la jauge, dans cet exemple 21000.
Donc j'ai 5660/21000, je veux savoir combien ça fait en pourcentage :
Je pose mon produit en croix suivant dont le résultat intègrera la variable $perc_var:
21000 = 100%
5660 = ?
qui se traduit par :
$perc_var = ($var * 100) / $var_max;
- Dans mon code CSS :
J'ai .bar ma div de la barre, virtuellement je me la représente "vide".
et .barcontent, qui représente ma barre "remplie".
.bar est toujours fixe en longueur et hauteur (20x250).
.barcontent est toujours fixe en hauteur (100% de son élément mère, .bar), MAIS doit varier en longueur (pour représenter le pourcentage actuel, détenu dans la variable $percent_var).
Maintenant (j'y suis presque !) je dois trouver comment redimensionner un élément stylable avec pour attribut width une variable PHP, dans mon exemple (faussé) ma div .barcontent, pour que sa longueur soit égale à ma variable $percent_var.
J'ai essayé toutes sortes de bidouilles plus ou moins W3C-légales (ou illégales plutôt ce dont j'aimerai bien m'affranchir dans une optique d'optimisation complète).
Comment faire s'il vous plait ?
Une ou plusieurs idées ?
Merci d'avance.
Modifié par Wu Xiang (25 Jul 2010 - 07:17)
Et pour commencer, merci de l'attention que vous portez à mon problème.
Mon besoin initial était de concevoir une jauge de progression.
C'est à dire une représentation graphique d'une variable PHP ($var), par rapport à un maximum donné fixé lui aussi par une variable PHP ($var_max), et le tout représenté sous forme de barre dans une div fixe, en pourcentage de la longueur de cette même div (Cf. Schéma 1).
IMPORTANT : cette jauge est dynamique (via PHP) mais "inerte" elle n'a pas vocation à faire office de pré-loader par exemple (comme certaine jauge Flash ou JS rencontrées), elle a juste pour rôle d'être une "indication graphique" fixe pour le visiteur.
Je précise que je ne souhaitais utiliser pour des raisons techniques QUE du Html/Css et PHP au début du projet. Mais autant être honnête et ne pas s'en cacher, alors en fait : je ne veux (voulais ?) pas de Javascript dans la mesure du possible.
N'étant pas familier de ce langage et n'ayant pas vraiment nécessité de l'apprendre globalement (sauf pour un ou deux projet isolés, éventuellement).
En plus de ça beaucoup de gens désactivent le Javascript, ...bref.
J'ai cherché sur Internet (Google mon grand ami, les Forums de dev, etc), mais je n'ai rien trouvé qui corresponde à mon problème. J'ai même cherché une librairie JS qui me permette de faire ça "tout seul", qui réponde à mes besoins...Probablement qu'il en existe une mais j'ai du passer à coté (et je préfèrerais me passer de JS donc, si possible).
http://img217.imageshack.us/img217/4535/testrq.png
Schema 1 : Voilà, une image peut-être plus parlante que ma description plus haut ?
Les valeurs en pourcentages sont fictives et au pifomètre pour l'exemple.
Voici mon code HTML actuel pour tenter de répondre à mon besoin.
<body>
<?php
$var = 5660;
$var_max = 24000;
$perc_var = ($var * 100) / $var_max;
?>
<table width="90%" border="0">
<tr>
<td>
<div class="bar">
<div class="barcontent" width="<?php $perc_var?>%"height="20px">
</div>
</div>
</td>
</tr>
</table>
</body>
.bar {
width:250px;
height:20px;
border: #000000 solid 1px;
background-color:#E3C574;
margin:0px;
padding:0px;
}
.barcontent {
height:100%;
background-color:#B82E21;
margin:0px;
padding:0px;
}
1° Mon code n'est pas fonctionnel (ni conforme dans l'exemple, j'ai fait ça pour que vous compreniez ce que je voulais globalement faire). Ce n'est plus faisable à partir du moment ou j'essaie d'entrer un paramètre "width" dans une balise div, voir plus loin.
2° Si vous vous dites grosso modo "Oh, bon sang ! Qu'est-ce qu'il a essayé de faire ?!"
Paniquez-pas, j'explique :
- Comme vous pouvez le constater dans le code PHP :
$var : ma variable de la quantité "possédée", dans cet exemple 5660.
$var_max : la variable de la quantité maximale de la jauge, dans cet exemple 21000.
Donc j'ai 5660/21000, je veux savoir combien ça fait en pourcentage :
Je pose mon produit en croix suivant dont le résultat intègrera la variable $perc_var:
21000 = 100%
5660 = ?
qui se traduit par :
$perc_var = ($var * 100) / $var_max;
- Dans mon code CSS :
J'ai .bar ma div de la barre, virtuellement je me la représente "vide".
et .barcontent, qui représente ma barre "remplie".
.bar est toujours fixe en longueur et hauteur (20x250).
.barcontent est toujours fixe en hauteur (100% de son élément mère, .bar), MAIS doit varier en longueur (pour représenter le pourcentage actuel, détenu dans la variable $percent_var).
Maintenant (j'y suis presque !) je dois trouver comment redimensionner un élément stylable avec pour attribut width une variable PHP, dans mon exemple (faussé) ma div .barcontent, pour que sa longueur soit égale à ma variable $percent_var.
J'ai essayé toutes sortes de bidouilles plus ou moins W3C-légales (ou illégales plutôt ce dont j'aimerai bien m'affranchir dans une optique d'optimisation complète).
Comment faire s'il vous plait ?
Une ou plusieurs idées ?
Merci d'avance.
Modifié par Wu Xiang (25 Jul 2010 - 07:17)