如何创建“转到页面” PHP 中的下拉列表?

发布于 2024-12-01 00:50:44 字数 2579 浏览 0 评论 0原文

我正在尝试为 Joomla 扩展一个名为 Jquarks 的组件。该组件允许您创建分页测验,并通过来回浏览问题来回答问题或纠正答案。我认为这是由一些 Javascript 代码处理的。

我相信这是一段代码,可以使该功能发挥作用,但我不知道如何开始修改它。我想要一个包含所有页码的下拉列表,以允许用户导航到特定页面。

// adding the back next link if multi-pages 
        if ($nbrPage > 1) 
        {
            if( $pNum == (int)($qNum / $nbrQuestionPage) || $qNum == $totalNbrQuestions ) 
            {

                if ($pNum == 1) 
                {
                    echo '<span class="jquarks_qprog"><a id="jquarksPage_' . $pNum . 'next" href="#">' . JText::_('NEXT') . '</a>'
                         . '<p>' . JText::_("PAGE") . ' ' . $pNum . ' / ' . $nbrPage .'</p>' .'</span></div>' ; 
                } 
                elseif ( $pNum == $nbrPage ) 
                {
                    echo '<span class="jquarks_qprog"><a id="jquarksPage_' . $pNum . 'back" href="#">' . JText::_('BACK') . '</a>'
                         . '<p>' . JText::_("PAGE") . ' ' . $pNum . ' / ' . $nbrPage .'</p>' .'</span></div>' ; 
                } 
                else 
                {
                    echo '<span class="jquarks_qprog"><a id="jquarksPage_' . $pNum . 'back" href="#">' . JText::_('BACK') . '</a>
                         |
                         <a id="jquarksPage_' . $pNum . 'next" href="#">' . JText::_('NEXT') . '</a>' 
                        . '<p>' . JText::_("PAGE") . ' ' . $pNum . ' / ' . $nbrPage .'</p>'   
                        . '</span></div>' ;
                }
                $pNum ++ ;
            } 
        } 
         $qNum++ ;
       } 
       if ($nbrPage == 1 ) :
            echo "</div>" ;
       endif ;
       ?>

</div>
<div style="clear: both;"></div>
<div>
    <p>
    <?php if ($nbrPage > 1) : ?>
        <input type="submit" value="<?php echo JText::_('SUBMIT_ANSWERS_CHECK_PAGES') ; ?>" id="send" name="send" />
    <?php else : ?>
    <input type="submit" value="<?php echo JText::_('SUBMIT_ANSWERS') ; ?>" id="send" name="send" />
    <?php endif ; ?>
    </p>    
    <p>
        <a href="http://www.jquarks.org" target="_blank">Powered by JQuarks</a>
    </p>
</div>

<?php 
    $attribs = array('type' => 'text/css');
    $document->addHeadLink(JRoute::_("components/com_jquarks/assets/stylesheets/SyntaxHighlighter.css"), "stylesheet", "rel", $attribs) ; 
?>

I am trying to extend a component for Joomla called Jquarks. This component allows you to create paginated quizzes, and answer the questions or correct your answers by going back and forth through the questions. I think this handled by some Javascript code.

This is the piece of code I believe makes this functionality work, but I don't know how to start to modifying it. I want to have a dropdown list containing all the page numbers, to allow the user go to a navigate to a specific page.

// adding the back next link if multi-pages 
        if ($nbrPage > 1) 
        {
            if( $pNum == (int)($qNum / $nbrQuestionPage) || $qNum == $totalNbrQuestions ) 
            {

                if ($pNum == 1) 
                {
                    echo '<span class="jquarks_qprog"><a id="jquarksPage_' . $pNum . 'next" href="#">' . JText::_('NEXT') . '</a>'
                         . '<p>' . JText::_("PAGE") . ' ' . $pNum . ' / ' . $nbrPage .'</p>' .'</span></div>' ; 
                } 
                elseif ( $pNum == $nbrPage ) 
                {
                    echo '<span class="jquarks_qprog"><a id="jquarksPage_' . $pNum . 'back" href="#">' . JText::_('BACK') . '</a>'
                         . '<p>' . JText::_("PAGE") . ' ' . $pNum . ' / ' . $nbrPage .'</p>' .'</span></div>' ; 
                } 
                else 
                {
                    echo '<span class="jquarks_qprog"><a id="jquarksPage_' . $pNum . 'back" href="#">' . JText::_('BACK') . '</a>
                         |
                         <a id="jquarksPage_' . $pNum . 'next" href="#">' . JText::_('NEXT') . '</a>' 
                        . '<p>' . JText::_("PAGE") . ' ' . $pNum . ' / ' . $nbrPage .'</p>'   
                        . '</span></div>' ;
                }
                $pNum ++ ;
            } 
        } 
         $qNum++ ;
       } 
       if ($nbrPage == 1 ) :
            echo "</div>" ;
       endif ;
       ?>

</div>
<div style="clear: both;"></div>
<div>
    <p>
    <?php if ($nbrPage > 1) : ?>
        <input type="submit" value="<?php echo JText::_('SUBMIT_ANSWERS_CHECK_PAGES') ; ?>" id="send" name="send" />
    <?php else : ?>
    <input type="submit" value="<?php echo JText::_('SUBMIT_ANSWERS') ; ?>" id="send" name="send" />
    <?php endif ; ?>
    </p>    
    <p>
        <a href="http://www.jquarks.org" target="_blank">Powered by JQuarks</a>
    </p>
</div>

<?php 
    $attribs = array('type' => 'text/css');
    $document->addHeadLink(JRoute::_("components/com_jquarks/assets/stylesheets/SyntaxHighlighter.css"), "stylesheet", "rel", $attribs) ; 
?>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

燃情 2024-12-08 00:50:44

下面是 html 下拉菜单上的 javascript 示例:

<select onchange="window.location = this.value">
    <option value="#">Select a page</option>
    <option value="/foo.html">Foo Bar</option>
    <option value="/foo2.html">Foo Bar2</option>
    <option value="/foo3.html">Foo Bar3</option>
    <option value="/foo4.html">Foo Bar4</option>
</select>

我尚未在所有浏览器中测试过此功能,但它可以在 chrome 中运行。通常我使用 jQuery,所以会是:

<select onchange="window.location = $(this).val()">

我将把它转换为 PHP 作为你的家庭作业;)干杯

Here's an example of javascript on an html drop down:

<select onchange="window.location = this.value">
    <option value="#">Select a page</option>
    <option value="/foo.html">Foo Bar</option>
    <option value="/foo2.html">Foo Bar2</option>
    <option value="/foo3.html">Foo Bar3</option>
    <option value="/foo4.html">Foo Bar4</option>
</select>

I haven't tested this in all browsers but it works in chrome. Usually I use jQuery so the would be:

<select onchange="window.location = $(this).val()">

I'll leave the converting this to PHP as your homework assignment ;) Cheers

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文