xml parametreleri geçirerek

0 Cevap php

I this code kullanarak xml sayfalamayı uygulamaya çalışıyor ve iş yapma etrafında kulüpler var. mükemmel çalışıyor iken, küçük bir sorun i İLERİ düğmesine tıkladığınızda, o aynı başlangıç ​​kayıtları ile sayfayı yeniden tutar vardır. bir sonraki sayfaya kullanıcıyı almaz.

Poster benzer bir sorunu vardı burada i this link geldi ve bu parametreler geçirilmesi gereken cevaplardan görünüyor. Ben değilim ise ancak, bu bağlantıdaki adam, MM_XSLTransform kullanıyordum. dolayısıyla ben index.php bu kodu uygulamak çalıştığınızda:

$xsl->addParameter("Page", $_GET["Page"]);
$xsl->addParameter("PageSize", $_GET["PageSize"]);

bir hata atar:

Fatal error: Call to undefined method XSLTProcessor::addParameter() 

UPDATED

php kodu:

<?php
        error_reporting(E_ALL);
        ini_set("display_errors", 1);

            $xmldoc = new DOMDocument();
            if(!file_exists('test.xml')){
              echo "Sorry this file does not exists!";
              exit();
            } else {
                $xmldoc->load('test.xml', LIBXML_NOBLANKS);

               // Load up the XSL file
                $xslDoc = new DomDocument;
                $xslDoc->load("test.xsl");
                $xsl = new XSLTProcessor;
                $xsl->importStyleSheet($xslDoc);

                $xsl->setParameter(null, 'Page', $_GET['Page']);
                $xsl->setParameter(null, 'PageSize', $_GET['PageSize']);

                // apply the transformation
                echo $xsl->transformToXml($xmldoc);

            } 
?>

xsl:

    <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" />

<!-- XML Parameters -->
<xsl:param name="Page" select="0" />
<xsl:param name="PageSize" select="5" />

<xsl:template match="/">

<xsl:variable name="mycount" select="count(root/verse)"/>
<xsl:variable name="selectedRowCount" select="floor((number($mycount)-1) div $PageSize)+1"/>

<div>
    <div>
        <xsl:value-of select="root/title"/>
    </div>
    <div>
        <p><xsl:value-of select="root/introduction"/></p>
    </div>
    <div>

            <xsl:for-each select="root/verse">  

                <xsl:if test="position() &gt;= ($Page * $PageSize) + 1">
                <xsl:if test="position() &lt;= $PageSize + ($PageSize * $Page)">

                    <div><xsl:value-of select="p"/></div> <br />
                    <div><xsl:value-of select="trla"/></div> <br />
                    <div><xsl:value-of select="trli"/></div> <br />

                </xsl:if>
                </xsl:if>
            </xsl:for-each>


            <!-- Prev link for pagination -->
              <xsl:choose>
               <xsl:when test="number($Page)-1 &gt;= 0">&#160;
                <A>
                 <xsl:attribute name="href">index.php?page=<xsl:value-of select="number($Page)-1"/>&amp;pagesize=<xsl:value-of select="$PageSize"/></xsl:attribute>
                  &lt;&lt;Prev
                </A>
               </xsl:when>
               <xsl:otherwise>
                <!-- display something else -->
               </xsl:otherwise>
              </xsl:choose>

              <xsl:if test="$selectedRowCount &gt; 1">
               &#160;<b class="blacktext"><xsl:value-of select="number($Page)+1"/>&#160;of&#160;<xsl:value-of select="number($selectedRowCount)"/></b>&#160;
              </xsl:if>

              <!-- Next link for pagination -->
              <xsl:choose>
               <xsl:when test="number($Page)+1 &lt; number($selectedRowCount)">&#160;
                <A>
                 <xsl:attribute name="href">index.php?page=<xsl:value-of select="number($Page)+1"/>&amp;pagesize=<xsl:value-of select="$PageSize"/></xsl:attribute>
                  Next&gt;&gt;
                </A>
               </xsl:when>
               <xsl:otherwise>
                <!-- display something else -->
               </xsl:otherwise>
              </xsl:choose>

    </div>

</div>

</xsl:template>
</xsl:stylesheet>

0 Cevap