2009-03-13 10 views
1

XSLTでPHPセッションを使用してWebショップのショッピングカートを作成するにはどうすればよいですか?xsltでphp sessionsを使用するには?

ユーザは、サイトを閲覧し、いくつかの項目の「カートに追加」をクリックすることができます。各項目はセッション変数に格納する必要があります。ユーザーは、「カートを見る」をクリックすることによって選択されたアイテムを常に見ることができる。

+0

もっと具体的にすることはできますか?あなたは正確に何をしたいですか?ショッピングカートを作成するのはかなり一般的です... –

+0

達成しようとしていることが本当に不明です。セッションでXMLデータを使用しますか? (なぜあなたはこれをしますか?) – strager

答えて

3

PHP内からXSLTを使用している場合は、XSLTProcessor::setParameter()によってパラメータを渡すことができます。あなたは...例えば

<xsl:param name="«param name»"/> 

とXSLでそのパラメータを宣言する必要があります

PHP:

// $xsl, $xml -- DOMDocument objects 
$proc = new XSLTProcessor; 
$proc->importStyleSheet($xsl); 
$proc->setParameter(''/*default namespace*/, 'test_param', $aValue); 
$proc->setParameter('', 'session_name', session_name()); 
$proc->setParameter('', 'session_id', session_id()); 
echo $proc->transformToXML($xml); 

XSL:あなたはおそらく呼んでいる

<?xml version="1.0"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:param name="test_param"/> 
    <xsl:param name="session_name"/> 
    <xsl:param name="session_id"/> 
    <xsl:template match="/"> 
     <p>Your test parameter is: <xsl:value-of select="$test_param"/></p> 
     <p>Your session name is: <xsl:value-of select="$session_name"/></p> 
     <p>Your session ID is: <xsl:value-of select="$session_id"/></p> 
     <p> 
     <a> 
      <xsl:attribute name="href"> 
      <xsl:value-of select="concat('http://example.com/index.php?',$session_name,'=',$session_id)"/> 
      </xsl:attribute> 
      Link with session 
     </a> 
     </p> 
    </xsl:template> 
</xsl:stylesheet> 
+0

私はこれを試してみましょう!ありがとうございました! – jorgen

0

いくつかのXML上のxsltプロセッサー、なぜあなたはそのXMLにセッションデータを追加しないのですか?

0
答え以来ロング

が、記録のために...

はXSL内から直接セッション変数を取得します。

<xsl:text disable-output-escaping="yes">&lt;?php echo 'SESSION Name: ' . $_SESSION['session_name']; ?&gt;</xsl:text> 

変換を行う場合、代わりに変換をecho'ingのは、それが含まれています。

$output_file = 'new_file.php'; 
$xslt->transformToUri($xml_dom, $output_file); 
include ('new_file.php'); 
関連する問題