IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[XSLT] Problème d'affichage php xsl


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club

    Inscrit en
    Avril 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2004
    Messages : 44
    Points : 55
    Points
    55
    Par défaut [XSLT] Problème d'affichage php xsl
    Bonjour à tous,

    Mon problème est le suivant :
    Dans xsl on peut faire appel à une fonction php à l'aide de la classe registerPhpFunctions, j'ai donc crée une fonction qui permet de générer une url qui triera les informations (croissant,décroissant).
    La génération fonctionne très bien,le tri aussi.

    Le soucis est l'affichage de cette url, qui ne s'affiche pas au bon endroit.
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl" version="1.0">
    	<xsl:output method="html" encoding="iso-8859-1" indent="no"/>
    	<!-- on recupere les parametres envoyes par le script php -->
    	<xsl:param name="id1"/>
    	<xsl:param name="id2"/>
    	<xsl:param name="id3"/>
    	<xsl:param name="id4"/>
    	<xsl:template match="ROOT">
    		<xsl:comment>ListeFournisseur.xsl</xsl:comment>
    		<html>
    			<head>
    				<meta http-equiv="Pragma" content="no-cache"/>
    				<meta http-equiv="Cache-Control" content="no-cache"/>
    				<meta http-equiv="Expires" content="0"/>
    				<title>Listes Fournisseurs</title>
    				<link type="text/css" rel="stylesheet" href="css/generix.css"/>
    			</head>
    			<body class="liste">
    				<table width="75%" class="liste" align="center">
    					<tr>
    //PROBLEME AFFICHAGE
    						<th><xsl:apply-templates select="php:function('sorting',string($id1),string('NOMTIE'),string('ASC'))"/>Nom Tier<xsl:apply-templates select="php:function('sorting',string($id1),string('NOMTIE'),string('DESC'))"/></th>
    						<th>Sigle tier</th>
    						<th>Code Société</th>
    						<th>Typtie</th>
    						<th>Adresse</th>
    					</tr>
    					<xsl:apply-templates select="tier"/>
    				</table>
    			</body>
    		</html>
    	</xsl:template>
    </xsl:stylesheet>
    dans le code on voit bien que l'url doit être affichée dans le th du tableau mais ici ca l'affiche au début de la feuille html.Pour moi le problème n'est pas lié au code xsl mais au php.

    La fonction qui permet l'affichage de l'url est celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function sorting($url,$order,$ordtype)
    	{
    		if($ordtype== "ASC")
    			print "<a href='$url?order=$order&type=$ordtype'><img src='img/tri_croissant.gif'/></a>";
    		if($ordtype=="DESC")
    			print "<a href='$url?order=$order&type=$ordtype'><img src='img/tri_decroissant.gif'/></a>";
    	}
    et pour que cette fonction soit prise en compte j'effectue ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $proc = new XsltProcessor();
    	$proc->setParameter($namespace, 'id1', $url);
    	$proc->setParameter($namespace, 'id2', $total_pages);
    	$proc->setParameter($namespace, 'id3', $order);
    	$proc->setParameter($namespace, 'id4', $ordtype);
    	$proc->registerPhpFunctions();
    	$xsl = new DomDocument();
    	$xsl->load('xsl/ListeFournisseur.xsl');
    	$xsl = $proc->importStylesheet($xsl);
    	$newdom = $proc->transformToDoc($dom);
    	print $newdom->saveXML();
    Pour moi le problème est que la partie php s'effectue avant la transformation et donc ne prend pas en compte la feuille de style xsl et affiche l'url avant .
    J'ai essayé de modifier cette partie sans résultat .

    VOila je vous remerci d'avance pour vos répnses

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Retournez la valeur au lieu de l'imprimer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function sorting($url,$order,$ordtype)
    	{
    		if($ordtype== "ASC")
    			return "<a href='$url?order=$order&type=$ordtype'><img src='img/tri_croissant.gif'/></a>";
    		if($ordtype=="DESC")
    			return "<a href='$url?order=$order&type=$ordtype'><img src='img/tri_decroissant.gif'/></a>";
    	}

  3. #3
    Membre du Club

    Inscrit en
    Avril 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2004
    Messages : 44
    Points : 55
    Points
    55
    Par défaut
    ok, je viens d'essayé cela ramene directement la chaine et ne fait plus le lien. Je me retrouve avec la chaine de caractere

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Et en rajoutant : disable-output-escaping="yes" à votre élément xsl:apply-templates (ça devrait être autre chose là - value-of, non ?).

  5. #5
    Membre du Club

    Inscrit en
    Avril 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2004
    Messages : 44
    Points : 55
    Points
    55
    Par défaut
    j'avais fait une autre methode avec un xsl:variable et fait ça à la main c'était un peu nul mais avec le disable-output-escaping="yes" tout fonctionne comme il faut merci bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ODBC] Problème d'affichage php odbc d'une image stockée en champ blob
    Par caro384 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 10/07/2012, 11h58
  2. [XSLT]Problème d'utilisation de XSL avec fichier GPX.
    Par robiwan dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/05/2010, 14h17
  3. problème d'affichage PHP
    Par benjia2si dans le forum Langage
    Réponses: 1
    Dernier message: 16/04/2008, 08h38
  4. [XSLT] Problème déclaration xml (php/xslt)
    Par thibaut06 dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 07/11/2007, 13h06
  5. [XSLT] Problème PHP + XSL
    Par thefaycal dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 21/12/2005, 09h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo