By: Bewonder
Date: 2006-08-08
Time: 16:43
|
Afficher du code html selon l'état d'une variable
Bonjour, je suis novice et je m'arrache les cheveux.
J'ai une variable et je veux afficher du code si elle a une valeur précise (et pas si elle est nulle).
J'avais penser faire un truc comme çà :
<div>
[menug;block=div;when [var._SESSION.emplacement_menu]!='gauche']
<!-- code html -->
</div> |
ou comme çà :
<div>
[onshow;if [var._SESSION.emplacement_menu]!='gauche';then ' ';magnet=div;mtype=m*m]
<!-- code html -->
</div> |
Mais y'a rien qui marche, pffff, c'est vraiment pas évident.
Merci pour votre aide.
|
By: Bewonder
Date: 2006-08-08
Time: 17:49
|
Re: Afficher du code html selon l'état d'une variable
Voilà ma dernière tentative... infructueuse :
<td>
<!-- code html -->
[onload; block=td; when [var._SESSION.emplacement_menu]='gauche']
</td> |
Ca ne marche touours pas...
|
By: Olivier
Date: 2006-08-08
Time: 18:19
|
Re: Afficher du code html selon l'état d'une variable
<div>
[onload_1;block=div;when [var._SESSION.emplacement_menu]!='gauche']
... ici code html du blok div
</div>
|
le block div sera visible seulement quand $_SESSION['emplacement_menu']!='gauche' essai de voir si ça fonctionne mieux avec autre chose que 'gauche' genre 1 pour gauche
Olivier
|
By: Bewonder
Date: 2006-08-09
Time: 08:04
|
Re: Afficher du code html selon l'état d'une variable
En fait, mon premier exemple est pour une balise <td> mais j'ai réessayé la méthode pour un vrai <div>
<div>
[onload;block=div;when [var.GLOBALS.connect]=1]
<!-- code html -->
</div> |
On doit afficher le code html lorsque la variable $connect est à 1
Et ça ne marche toujours pas... J'ai même mis la variable php en globale. Dois-je utiliser SMARTY par dépit ou continuer à perdre mon temps ?
|
By: olivier
Date: 2006-08-09
Time: 08:35
|
Re: Afficher du code html selon l'état d'une variable
Essayez de changer [var.GLOBALS.connect] par une variable simple... attention, le onload s'execute au moment du loadtemplate(). le $GLOBALS['connect'] est corectement initialisé avant ?
Essayez de remplacer le onload par onshow
Perso, j'utilise cette syntaxe très frequement et sans problème.
Pour ce qui est de SMARTY, je ne suis pas convaincu que ce soit plus simple.
Olivier
|
By: Bewonder
Date: 2006-08-09
Time: 08:54
|
Re: Afficher du code html selon l'état d'une variable
WOUINNNNNN !!!!
Je suis maudit, voilà mes changements :
dans le fichier html :
<div>
[onload;block=div;when [var.connect]=1]
<tr class="Style1">
<td align="right">Société :</td>
<td>
<span class="Style10"> [var.GLOBALS.societe]</span>
<input name="societe" type="hidden" value="[var.GLOBALS.societe]">
</td>
<td align="right">Famille :</td>
<td>
<span class="Style10"> [var.GLOBALS.famille]</span>
<input name="selectFamillePrescripteur" type="hidden" value="[var.GLOBALS.famille]">
</td>
</tr>
<tr class="Style1">
<td colspan="4"><hr><input type="hidden" name="pro" value="1"></td>
</tr>
</div> |
et dans le fichier php :
include ("../admin/systeme/config.php");
include('tbs/tbs_class.php');
$TBS = new clsTinyButStrong ;
if (isset($_SESSION['connect']) && ($_SESSION['connect']=="ok")) $connect=1;
else $connect="";
$GLOBALS['societe']="";
$GLOBALS['famille']="";
$TBS->LoadTemplate(''.$_SESSION[rep_image].'_accueil.htm');
$TBS->Show(); |
Y'a toujours un blème.
|
By: olivier
Date: 2006-08-09
Time: 10:25
|
Re: Afficher du code html selon l'état d'une variable
Voici les scripts et ça fonctionne
test.php
<?php
include('tbs_class.php');
session_start();
$_SESSION['connect']='ok'; /* modifier ici pour le test */
$TBS = new clsTinyButStrong ;
$GLOBALS['societe']="";
$GLOBALS['famille']="";
$TBS->LoadTemplate('test.html');
$TBS->Show();
?>
|
et test.html
page web
<div>
[onload;block=div;when [var._SESSION.connect;noerr]=='ok']
<tr class="Style1">
<td align="right">Société :</td>
<td>
<span class="Style10"> [var.GLOBALS.societe]</span>
<input name="societe" type="hidden" value="[var.GLOBALS.societe]">
</td>
<td align="right">Famille :</td>
<td>
<span class="Style10"> [var.GLOBALS.famille]</span>
<input name="selectFamillePrescripteur" type="hidden" value="[var.GLOBALS.famille]">
</td>
</tr>
<tr class="Style1">
<td colspan="4"><hr><input type="hidden" name="pro" value="1"></td>
</tr>
</div>
|
Bien voila... que faire de plus :)
Olivier
|
By: Bewonder
Date: 2006-08-09
Time: 10:58
|
Re: Afficher du code html selon l'état d'une variable
J'ai testé différentes configurations d'organisation des éléments de mon fichier php, j'ai forcé l'initialisation de $connect à 1...
Et ça ne fonctionne toujours pas.
La seule idée qui me vient à l'esprit c'est que j'utilise la classe "tbs_class.php" alors que je tourne actuellement sous php 5.
Y aurait-il des incompatibilités ?
J'ai choisi cette classe car sur Internet on utilise des serveurs sous php 4. Je tablais sur une compatibilité ascendante.
En tout cas, merci pour le coup de main.
|
By: Bewonder
Date: 2006-08-09
Time: 11:08
|
Re: Afficher du code html selon l'état d'une variable
Si je remplace l'ancienne classe par la nouvelle... Ben pas de changements.
|
By: Bewonder
Date: 2006-08-09
Time: 11:33
|
Re: Afficher du code html selon l'état d'une variable
OK...
Bon, il semblerait que TBS analyse AUSSI les tags placés en commentaires HTML.
A côté de mon test subsistait un autre test TBS ente <!-- et --> qui a été interprêté et à foutu le bordel.
La simple suppression de ce commentaire a résolu mon problème.
Des fois je me les mordrais.
Donc, EXEMPLE A NE PAS SUIVRE :
<div>
[onload;block=div;when [var.connect]=1]
<!--[onshow;if [var.connect]=='';then ' ';magnet=div;mtype=m*m]-->
code html
</div> |
Merci encore, et à la prochaine question ;-)
|
|
Posting in progress.
Please wait...
|