Probleme d'affichage template[besoin d'aide car présente son projet a 15h]...

Eléphanteau du PHP | 14 Messages

12 juin 2009, 11:46

EDIT: Ca va paraître déplacé mais je le dis quand même.. :oops: je suis stagiaire et je dois présenter mon application à 15h... avec ça qui fonctionne :?

Bonjour,

j'avais un code de template Smarty qui n'affichait rien et après correction il s'affichait à nouveau.
Et ensuite je ne sais pas à quoi j'ai retouché il ne fonctionne plus et je n'arrive pas à le refaire fonctionner.
J'aiessayé de corrigé des erreurs de syntaxe mais rien n'y fait.
Je veux afficher un tableau mais sur ma page finale php (compilée avec le template) plus rien ne s'affiche (enfin un petit caractère semblable à un petit trait).

Cela vient du code de mon template et pas de php je suppose, puisque je n'ai pas touché a ma page php.

Voilà le code de mon template (en .tpl, mais là je le met en php pour que cela soit lisible) :

Merci à vous si vous pouvez m'aider ! :wink:

{include file="header.tpl" mylogo="MANOUKIAN.gif"}

Modèle: {$codeM} {$libM} <br/>
<form>
<table name="tab_modele" align="left" border="1">

 
	
{section name=prd loop=$lprd}
{if $smarty.section.prd.first}

	<tr>
		<th>Couleur</th>
		<th>Date liv</th>
		<th>Qté</th>
		<th>{$lprd[prd].LIB_T1}</th>
		<th>{$lprd[prd].LIB_T2}</th>
		<th>{$lprd[prd].LIB_T3}</th>
		<th>{$lprd[prd].LIB_T4}</th>
	</tr>
{/if}	
	<tr>
		<td>{$lprd[prd].couleur}</td>
		<input type="Hidden" name="C{$smarty.section.prd.rownum}" Value="{$lprd[prd].couleur}">
		<td>{$lprd[prd].date_liv}</td>
		<td></td>
		<td><input type="{if $lprd[prd].LIB_T1 eq ""}Hidden{else}Text{/if}" name="C{$smarty.section.prd.rownum}T1" Value="{$lprd[prd].qt_taille1}"</td>
		<td><input type="text" name="C{$smarty.section.prd.rownum}T2" Value="{$lprd[prd].qt_taille2}"</td>
		<td><input type="text" name="C{$smarty.section.prd.rownum}T3" Value="{$lprd[prd].qt_taille3}"</td>
		<td><input type="text" name="C{$smarty.section.prd.rownum}T4" Value="{$lprd[prd].qt_taille4}"</td>
	</tr>
{/section} 
</table>
</form>

{include file="footer.tpl"}

Modifié en dernier par Lolu le 12 juin 2009, 14:03, modifié 2 fois.

Blaoms
Invité n'ayant pas de compte PHPfrance

12 juin 2009, 12:26

Good Luck ;)

ViPHP
ViPHP | 1136 Messages

12 juin 2009, 14:39

Slt ,

Comment as tu configuré Smarty ?

Tu as désactivé le cache ?

Car si tu testes ta page (sans tableau) avec le cache à TRUE , tu devras attendre la fin de la validité de ce fichier mis en cache pour au finale voir les modifications apportées à ton template .

Si ton affichage est dynamique , met le paramètre "cache" de Smarty à FALSE.

A partir du moment ou ton site est en dev , aucun cache d'affichage ne devrait être actif .

Ch.

Eléphanteau du PHP | 14 Messages

12 juin 2009, 15:10

Merci beaucoup de répondre on est pas encore venu me demandé la présentation =) !!

Je ne sais pas comment (où) configurer Smarty... ?

Mammouth du PHP | 1511 Messages

12 juin 2009, 15:16

Regarde dans la documentation de Smarty, ca pourra t'aider ;)

Eléphanteau du PHP | 14 Messages

12 juin 2009, 15:21

J'ai rajouté " $npo->caching = true; " sur ma page.
Mais ça ne fonctionne pas mieux.
Ce qui est fou c'est que ce matin en modifiant un peu de syntaxe cela fonctionnait, et maintenant plus.
Donc je pense que simplement en re modifiant les bonnes choses cela fonctionnerait a nouveau, non ? :?

Mammouth du PHP | 1511 Messages

12 juin 2009, 15:22

Normalement oui, c'est le principe...
Mais je ne pourrais pas t'aider plus, je ne me sers pas de Smarty ou autres moteurs de templates.

ViPHP
ViPHP | 1136 Messages

12 juin 2009, 15:24

Il faut désactiver le cache ( normalement par défaut il ne l'est pas ! ).

En mettant à TRUE , tu as activé le cache !! il faut mettre FALSE !

Eléphanteau du PHP | 14 Messages

12 juin 2009, 15:25

J'ai essayé les deux déjà... :wink:

ViPHP
ViPHP | 1136 Messages

12 juin 2009, 15:25

Donne nous les codes coté php .. car avec le template , on ne peut pas faire grand chose !

Eléphanteau du PHP | 14 Messages

12 juin 2009, 15:28

Je pensais que ça suffisait car à un moment donné cela fonctionnait et je n'ai pas retouché au php mais que au tpl.
Voici le code de ma page php:
<?php
session_start();
include ("mylib/func.php");
init_profile();
if(!isset($_SESSION['LANG'])):		
	$lng="fr";
	else:
	$lng=$_SESSION['LANG'];
endif;
include ("setup.inc.php");
include ("config.inc.php");
//include ('config.inc.php');
$npo = new Smarty_po($_SESSION['LANG']);
$npo->caching = false; 
//----------------------------------------------
// connexion à la base de donnée
$conn_my = mysql_connect($MY_srv , $MY_user , $MY_pwd ) 
	or die('Connexion impossible !') ;
mysql_select_db($MY_bd) or die('Impossible de trouver la base !');
//----------------------------------------------
if( isset($_GET['M'])) $_SESSION['M']= $_GET['M'];
//Requête code modele et libelle modele
$req="SELECT modele,libelle_modele FROM articles";
$req.=" WHERE modele=".$_GET['M'];

$res=mysql_query($req);
if ($res)
		{
	while($data=mysql_fetch_array($res))
			{
			$codeM=$data['modele'];
			$libM=$data['libelle_modele'];
			}	
			$npo->assign("codeM",$codeM);
			$npo->assign("libM",$libM);
			}
//Requête couleur date livraison et quantité

$req="SELECT DISTINCT a.couleur, a.libelle_couleur, a.LIB_T1, a.LIB_T2, a.LIB_T3, a.LIB_T3, a.LIB_T4, a.LIB_T5, a.LIB_T6, a.LIB_T7, a.LIB_T8, a.LIB_T9, a.LIB_T10, a.LIB_T11, a.LIB_T12, a.date_dispo, c.qt_taille1, c.qt_taille2, c.qt_taille3, c.qt_taille4, c.qt_taille5, c.qt_taille6, c.qt_taille7, c.qt_taille8, c.qt_taille9, c.qt_taille10, c.qt_taille11, c.qt_taille12, c.date_liv, c.transferer
FROM articles a
LEFT JOIN commande_ligne c ON c.LPR = a.LPR
AND c.saison = a.saison
AND c.modele = a.modele
AND c.couleur = a.couleur
AND c.TCO =%d
AND c.Vesti = 'VRA'
WHERE a.LPR =%d
AND a.saison =%d
AND a.modele =%d
AND a.statut = 'A'
";

$req=sprintf($req,$_SESSION['C'],$_SESSION['ligne'],$_SESSION['sais'],$_SESSION['M']);
$res=mysql_query($req);
if ($res)
	{
		$i=0;
		while($data=mysql_fetch_array($res))
			{
			foreach($data as $key=>$val)
				$tbt[$key]=$val;
			
			$tcmd[$i]=$tbt;
			$i++;
			}
		
		$npo->assign("lprd",$tcmd);	
		}
		

		
$npo->display("edit_cmd.tpl");
?>

Et ce que j'ai a la place du tableau (un caractere qu'étrangement je ne peux pas selectionné avec ma souris):

Image

ViPHP
ViPHP | 1136 Messages

12 juin 2009, 15:33

C'est quoi cette balise <form> toute seule sans paramètre ? ..:-k

Le pb n'est pas là mais bon quand même ..

Quelles sont les sources de ta pages générés ?
Montre les nous .

Eléphanteau du PHP | 14 Messages

12 juin 2009, 15:37

En effet elle sert à rien...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Po-Web</title>
<link rel="stylesheet" type="text/css" href="styles/bcbg1.css" media="all" />
<link rel="stylesheet" type="text/css" href="styles/bcbg1-form.css" media="all" />
<link rel="stylesheet" type="text/css" href="styles/bcbg1-tables.css" media="all" />
</head>
<body>
<div id="global">
<div id="hdr">
<img align="left" src="img/MANOUKIAN.gif" width="170" height="20" alt="BCBGMaxazria-Group"/>
<div align="center" >POWEB 3.0</div>
<form name="frm_index" class="login" method="POST" action="index.php">
<input type="submit" name="index" value="Index" class="btn"  >
 
</form>
 
 
 
</div>
<div id="content">
Modèle: 584428 VESTE MASCULIN MANC.RETROUSSE <br/>
<form>
<table name="tab_modele" align="left" border="1">
 
</table>
</form>
</div>
<div id="navbas">
<ul class="navbar">
<li><a href=></a></li>
<align="left"><li><a href="http://localhost/poweb/index.php" title="Changer de pays et/ou collection">SUISSE / <font color="red">FEMME A/H 2009 </font></a></li></align>
</ul>
</div>
</div>
</body>
</html>

EDIT: En effacer les lignes de bouclage "section" j'ai mon tableau qui s'affiche mais avec aucune valeurs dedans bien sur...

ViPHP
ViPHP | 1136 Messages

12 juin 2009, 15:47

Bon , est bien ça me semble clair !

ton problème vient de cette ligne :

Code : Tout sélectionner

{section name=prd loop=$lprd}
Perso je préfère les foreach .. mais bon .. chacun ses gouts


Une chose m'étonne .. dans ton code php , c'est la façon dont tu assign la variable Smarty dans ta boucle while !
   while($data=mysql_fetch_array($res))
            {
            foreach($data as $key=>$val)
                $tbt[$key]=$val;
            
            $tcmd[$i]=$tbt;
            $i++;
            }
        
        $npo->assign("lprd",$tcmd);    
        }
Déjà c'est moi ou tu as un souci avec les accolades ouvrantes ..

Normalement php te renvoie un super Parse error: syntax error, unexpected '}'

Commence par corriger celà ..

Ensuite , si celà ne fonctionne toujours pas , vérifie ce que contiend $tcmd ...
Si celui-ci est vide ou pas ..
var_dump($tcmd);
PHP est tres permissif , mais il faut rester tres rigoureux

Ch.

Eléphanteau du PHP | 14 Messages

12 juin 2009, 16:16

Un soucis avec les accolades ouvrantes ?
J'ai procédé de cette façon dans mes autres pages et ça fonctionne je n'ai pas d'erreur mais je veux bien changer ça ?

Bref j'ai fait un var_dump et en effet ma requête renvoyait aucun enregistrement.

J'ai modifié ma requête en remplaçant le WHERE:
$req="SELECT DISTINCT a.couleur, a.libelle_couleur, a.LIB_T1, a.LIB_T2, a.LIB_T3, a.LIB_T3, a.LIB_T4, a.LIB_T5, a.LIB_T6, a.LIB_T7, a.LIB_T8, a.LIB_T9, a.LIB_T10, a.LIB_T11, a.LIB_T12, a.date_dispo, c.qt_taille1, c.qt_taille2, c.qt_taille3, c.qt_taille4, c.qt_taille5, c.qt_taille6, c.qt_taille7, c.qt_taille8, c.qt_taille9, c.qt_taille10, c.qt_taille11, c.qt_taille12, c.date_liv, c.transferer 
FROM articles a 
LEFT JOIN commande_ligne c ON c.LPR = a.LPR 
AND c.saison = a.saison 
AND c.modele = a.modele 
AND c.couleur = a.couleur 
AND c.TCO =%d 
AND c.Vesti = 'VRA' 
WHERE a.LPR =%d 
AND a.saison =%d 
AND a.modele =%d 
AND a.statut = 'A' 
"; 
par un AND et maintenant j'ai des centaines d'enregistrements... Ce qui n'est pas normal non plus.
Cette requête c'est mon maître de stage qui l'avait faite, moi je ne suis pas très allaise avec les LEFT JOIN ni avec la commande sprintf (même avec de la doc..!)
De plus il met un where au milieu, qui renvoie un autre résultat quand je le remplace par un AND...
Ca part sur du SQL désolé :? .