在codeigniter的foreach循环中形成中断

Posted

技术标签:

【中文标题】在codeigniter的foreach循环中形成中断【英文标题】:Form break in foreach loop in codeigniter 【发布时间】:2017-01-22 02:08:58 【问题描述】:

假设我的数据库中有 30 个问题。我正在做 Foreach 以显示所有问题,因此它在一个表单页面中显示所有问题 示例:-

    1 Question...
      answer(textarea)
    2 Question...
      answer(textarea)
    .
    .
    .
   30 Question...
      answer(textarea)

现在我想在第 30 个问题的末尾显示 NEXT 按钮每页显示 10 个问题将有 SUBMIT 按钮。这样我就可以将帖子值插入数据库。

我怎样才能做到这一点? 是否有任何 jquery 插件或我手动执行? 请建议我感谢您的回答

【问题讨论】:

你可以尝试解决问题然后发布代码吗? 【参考方案1】:

好吧,这里的想法是一次性将所有内容循环到页面,尽管每 10 个问题用一个类包装在一个 div 中,确保将 style:hidden 添加到除第一个之外的所有问题。

然后您可以在下面添加按钮,以便一个接一个地显示然后隐藏 div。

所以是这样的?

    <form class="" action="index.php" method="post">
            <?php $i = 0; ?>
            <?php foreach ($questions as $q): ?>
                <?php if (($i % 10) == 0): //Multipal of 10 ?>
                    <?php if ($i == 0): ?>
                        <div class="page">
                    <?php else: ?>
                        <div class="page" style="display:none;">
                    <?php endif; ?>

                <?php endif; ?>

                <label for="<?=$q?>">Label: <?=$q?></label><input type="text" name="<?=$q?>"><br/>

                <?php $i++; ?>
                <?php if (($i % 10) == 0): ?>
                    <?php if (count($questions) != $i): ?>
                        <button type="button" class="next-page">Next</button>
                    <?php else: ?>
                        <input type="submit" name="name" value="Submit">
                    <?php endif; ?>
                    </div>
                <?php else: ?>
                <?php endif; ?>

            <?php endforeach; ?>


    </form>
    <script type="text/javascript">
        $('.next-page').on('click', function()
            var currentPage = $('.page');
            currentPage.first().hide();
            currentPage.first().next().show();
        );
    </script>

【讨论】:

您的代码正在运行。但只有 0 到 10 和 10 到 20。它没有持续流动。 我不能花太多时间在上面,只是为了帮助您指出正确的方向 感谢您的时间和解决方案【参考方案2】:

您可以在请求中使用页码。

1 st page -> 您将 pagenum 发送为 1。 所以你将记录限制为LIMIT (pagenum * 10) 10 - 这是LIMIT 10 10

第二页 -> 您只需将页面编号更改为 2。 所以你将记录限制为LIMIT (pagenum * 10) 10 - 这是LIMIT 20 10

这只是一个只能用 php 实现的想法。可能还有其他几种解决方案。

【讨论】:

是的,我们可以通过查询来实现。但我的情况是不可能的 在您的情况下,您获取所有记录并将它们显示为每页 10 条? 试试这个:datatables.net/examples/styling/bootstrap.html。它很简单,这就是您所需要的! 我想显示表格。这样用户就可以提供输入而不是数据表 那么您不能在&lt;td&gt; 中添加textarea 吗? Datatables 只为您分页。【参考方案3】:

此问题的最佳解决方案请点击以下链接

Step-by-Step form

【讨论】:

以上是关于在codeigniter的foreach循环中形成中断的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter中foreach循环中的未定义变量

在 PHP CodeIgniter foreach 循环中从数据库中提取和更新数据

CodeIgniter:无循环地插入多条记录

Codeigniter 服务器超时 - 在 for 循环中运行批量数据库查询

Codeigniter 将查询组合在一个循环中

PHP CodeIgniter Foreach 返回不正确的数据