【问题标题】:Php write data on div from databasephp从数据库中将数据写入div
【发布时间】:2016-02-16 18:06:36
【问题描述】:

我有一个项目需要创建一个从 mysql 数据库获取帖子的 FlipPage 网站。所以我认为我可以在 PHP 上使用 while 函数来做到这一点。

首先,我创建了一个包含 2 个表的数据库。 “页面”和“帖子”。

'pages'表结构

'posts'表结构

在我写完这段代码之后。它从表中获取所有数据并将其写入。我的 while 函数有问题。我使用 FlipPageLayout 设计。页面由 div 标签分隔。当我编写此代码页时,我会在同一页上显示所有帖子。但我需要将帖子分配到页面。当我在 while 循环中写作时,它会为每个帖子创建新页面。但在表中我创建了 pageid 行。如何使用该行来组织每个页面上的帖子。

        if ($pagerow['flipcontent'] == 1) {
            $box = 'w-50 h-100';
        }
        if ($pagerow['flipcontent'] == 2) {

            $box = 'w-25 h-100';
        }

        echo '<div class="f-page">';

        while($postrow = mysqli_fetch_assoc($postquery)) {
            echo '<div class="f-title">';
            echo '<h2>' . $pagerow['title'] . '</h2>';
            echo '</div>';
            echo '<div class="box ' . $box . '">';
            echo '<div class="img-cont"><img src="' . $postrow['photo'] . '"></div>';
            echo '<h3>' . $postrow['title'] . ' <span>' . $postrow['date'] . '</span></h3>';
            echo '<p>' . $postrow['content'] . '</p>';
            echo '</div>';
        } //End of while
        echo '</div>';

【问题讨论】:

  • Emre,请问您是要加载下一页的页面,还是要为此目的使用 ajax,或者您只想在前端显示和隐藏内容?
  • 感谢您的反馈 Shudhansh,我认为第一个选项会更好。因为如果我要在页面中加载这么多数据,它会减慢流量。但如果它会在页面旋转时加载,它会更经济。也很抱歉我的糟糕 Endlish 我希望你能理解我:( .
  • 表示页面url可能包含不同的页面id?
  • 是的,它可以包含不同的 id。事实上,这对我来说并不重要。我试着用 get 变量来做,但它没有用。它仅在您刷新页面时有效。我只需要在最大流量经济的每个页面上正确地进行这个 while 循环。
  • 所以你想用不同的id加载不同的页面而不需要重新加载?......

标签: php html mysql css while-loop


【解决方案1】:

我希望你已经包含了 jquery 库。如果没有,则粘贴
&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"&gt;&lt;/script&gt;
在您的元标记中。
因为,你有索引页。所以找到你的 SQL 查询文件的相对路径并注意这一点。
在 SQL 查询文件中,在数据库查询之后,添加:

if ($pagerow['flipcontent'] == 1) {
        $box = 'w-50 h-100';
    }
    if ($pagerow['flipcontent'] == 2) {

        $box = 'w-25 h-100';
    }

    echo '<div class="f-page">';

    while($postrow = mysqli_fetch_assoc($postquery)) {
        echo '<div class="f-title">';
        echo '<h2>' . $pagerow['title'] . '</h2>';
        echo '</div>';
        echo '<div class="box ' . $box . '">';
        echo '<div class="img-cont"><img src="' . $postrow['photo'] . '"></div>';
        echo '<h3>' . $postrow['title'] . ' <span>' . $postrow['date'] . '</span></h3>';
        echo '<p>' . $postrow['content'] . '</p>';
        echo '</div>';
    } //End of while
    echo '</div>';


mow 创建一个 js 文件或脚本标签并添加:
(如果您的 SQL 文件路径是变量 'path' 并且下一页或 x-page 按钮是 #page-x 并且所有页面的包装器都是相同的 #f-main)

    $('#page-x').click(function(){
    $.get(path, function(data){
        //console.log(data); //if you will remove '//' before console, you may see the fetched data in console. But use only for test neither. remove it.
        $('#main').html(data);
    });    
});


而已 。 如果你的代码没有得到 jquery,你可以在底部的 SQL CODE 页面中包含 cdn 标签。 更多详情,您可以在w3school了解详情

【讨论】:

  • 如果您还有问题,我明天会解决。现在我/我要去睡觉了。晚安。
  • 它对我不起作用,因为不确定是否有任何按钮。你能检查设计并回答吗? tympanus.net/codrops/2012/05/07/….
  • 感谢您展示您的设计参考。因为现在我知道了,你想要实现什么。实际上,您正在尝试实现我之前告诉过您的第三种选择。您需要一个 SPA,例如单页应用程序,它会加载所有页面并根据点击显示不同的页面。请注意,它不是 ajax 。它只是在不同的点击上显示和隐藏不同的 div。
  • 但如果您寻求帮助,我并不感到惊讶。一切都在那里解释。即使你有源代码。
  • 你不必为服务器端做任何事情。它是前端应用程序。只需严格按照那里给出的程序即可。
猜你喜欢
  • 2021-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多