Pb de remplacement de variable sur template

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Pb de remplacement de variable sur template

par fggdm » 13 juil. 2005, 20:45

Bah après toute l'aide que tu as reçu, tu pourrais donner quelques indications sur le chemin que tu as décidé de prendre :roll:

merci merci

par dark » 13 juil. 2005, 20:13

Bon merci à tous pour vos réponses mais finalement je suis passé par un autre chemin ...

@ bientôt ;)

par pascaltje » 13 juil. 2005, 18:01

Le sculpteur de pierre il utilise le burin adapté: un moteur de template.

tu ne peux pas modifier la valeur d'une constante dans la boucle, tout simplement parce que c'est une constante (qu'est-ce que je suis bon sur ce coup là! )

penche-toi du coté de phpLib, trouve les très bons tutoriaux de bertand soulier sur la question et tu pourras résoudre ton probleme.

questions subsidiaires: quelle est l'extension de ton fichier template?
comment lui passes tu les données?
comment sont interprétées les boucles, sur les lignes du tablerau par exemple?
(phpLib répond à ces questions)

Bon, personnellement, je suis revenu des templates séparés: je ne les fais plus avec PHPlib mais simplement avec PHP, des echo, des if et des boucles.

A+

Pascal

par Axel » 13 juil. 2005, 16:54

J'aimerais être sûr de comprendre le pb. Là j'ai l'impression de passer pour un idiot mais bref.

Tu dois:
- faire afficher un tableau avec des valeurs tirés d'une base Mysql
- dans un fichier completement séparé du code php, et dans lequel il est interdit d'utiliser une variable et même une commande PHP sauf les variables de type constante (qui sont sans "$")
- la fonction define qui permet de crée ces variables ne permet aucune modification ou suppression de ces dernières.

Au risque de passer pour un défaitiste, je ne vois pas de solution.

C'est comme si on disait à un sculpteur de pierre de façonner une femme aux dimensions parfaites dans un bloc de granit avec pour seul outils... ses mains!!!! :x

Là il faut appeler Mr Phelbs car c'est mission impossible

par mere-teresa » 13 juil. 2005, 16:42

Du coup les constantes sont pas top avec la boucle qui redéfinit la constante à chaque fois, je suppose. Peux-tu définir des constantes genre ID[$i] et après afficher ID1, ID2, etc... ?

par dark » 13 juil. 2005, 16:32

mais est ce que tu peux mettre des commandes php? au moins ça :?
non surtout pas !!! interdit :?

par mere-teresa » 13 juil. 2005, 16:18

Vous pouvez définir une constante en utilisant la fonction define(). Une fois qu'une constante est définie, elle ne peut jamais être modifiée, ou détruite.
http://fr2.php.net/manual/fr/language.constants.php

par Axel » 13 juil. 2005, 16:12

mais est ce que tu peux mettre des commandes php? au moins ça :?

par dark » 13 juil. 2005, 15:57

Et ce n'est pas possible de mettre dans ton HTML :

Code : Tout sélectionner

<table><tr> <?php echo $une_cellule;?> </tr></table>
???
non pas de variable du type $xxxxx dans le fichier HTML (interdit)
il faut les remplacer par des constante genre ... ID_DU_CLIENT
Ben oui j'ai des contrainte de ouff :D

par mere-teresa » 13 juil. 2005, 15:54

Et ce n'est pas possible de mettre dans ton HTML :

Code : Tout sélectionner

<table><tr> <?php echo $une_cellule;?> </tr></table>
???

par dark » 13 juil. 2005, 15:51

Bien gentil mais ça répond pas vraiment à ma question tout ça !!!! :(

par Axel » 13 juil. 2005, 15:21

si mais supposons que l'on veuille changer l'affichage du tableau.

Si l'on suit ton raisonnement les ID sont affichés dans des cellules différentes mais sur la même ligne.

Maintenant je veux (ET J'EXIGE, des fois les clients ils parlent comme ça :D) les afficher sur des lignes différentes, et bien je suis obligé de modifier 2 fichiers.
Donc celui qui s'occupe du design va avoir les 2fichiers à modifier.

et concernant l'extension, je suis d'accord avec toi, il faut la changer en ".php" pour pouvoir mettre du code à l'intérieur.

par mere-teresa » 13 juil. 2005, 15:02

Et ce n'est pas possible de mettre dans ton HTML :

Code : Tout sélectionner

<table><tr> <?php echo $une_cellule;?> </tr></table>
Il a raison et en plus si on veut modifier le style pour la cellule on est obligé de le faire dans le fichier d'origine.
Du coup il devient difficile de travailler sur le style avec seulement le fichier "tableau.html"
ça se fait pas dans la feuille de style ça ?

par Axel » 13 juil. 2005, 15:01

Si on utilise ça :

Code : Tout sélectionner

<? $res=mysql_query("SELECT * FROM table ORDER BY ID"); while($row=mysql_fetch_array($res)){ $une_cellule = "<td>" . $row['ID'] . "</td>";//on crée la cellule define ("ID",$une_cellule); include (tableau.html); } ?>
et si le résultat de la requete est > 10 enregistrements la constante ID reste invariable avec la valeur du 1er enregistrement !! :(
Il a raison et en plus si on veut modifier le style pour la cellule on est obligé de le faire dans le fichier d'origine.
Du coup il devient difficile de travailler sur le style avec seulement le fichier "tableau.html"

par dark » 13 juil. 2005, 14:53

Si on utilise ça :

Code : Tout sélectionner

<? $res=mysql_query("SELECT * FROM table ORDER BY ID"); while($row=mysql_fetch_array($res)){ $une_cellule = "<td>" . $row['ID'] . "</td>";//on crée la cellule define ("ID",$une_cellule); include (tableau.html); } ?>
et si le résultat de la requete est > 10 enregistrements la constante ID reste invariable avec la valeur du 1er enregistrement !! :(