【问题标题】:Using PHP, Add Element One by One from Database to Document Everytime a Button is Clicked使用 PHP,每次单击按钮时,将数据库中的元素一个一个添加到文档
【发布时间】:2021-12-07 21:39:20
【问题描述】:
<?php if(isset($_POST["btn-add"])):?>
    <?php $element = 0; ?>
    <?php while($element < 10): ?>
        <?php $statement = $pdo->query("SELECT * FROM dorayaki ORDER BY stock DESC LIMIT $element ,1"); ?>
        <?php if($row = $statement->fetch()): ?>
            <div name ="card" class = "card">
                <?php $doraId = $row["id"] ; ?>
                <p><?php print_r("Name: "."<a name='doraprice' href='detail.php?id=$doraId'>".$row["name"]."</a>"); ?></p>
                <p><?php print_r("Price: "."<a name='doraprice' href='detail.php?id=$doraId'>".$row["price"]."</a>"); ?></p>
                <p><?php print_r("Description: "."<a name='doraprice' href='detail.php?id=$doraId'>".$row["desc"]."</a>"); ?></p>
            </div>
            <?php $element++; ?>
        <?php endif; ?>
    <?php endwhile; ?>
<?php endif; ?>


<form method="post">
    <input type="submit" name="btn-add" value="Add element">
</form>

每次单击“添加元素”时,我希望它在 html 页面上附加一张“卡片”,如果再次单击该按钮,它将再添加一张“卡片”,直到达到 10 张卡片。当我单击“添加按钮”时,它不是一个一个地附加它,而是一次将所有卡片附加到 html 页面。如何解决?

【问题讨论】:

  • 循环中的数据库查询是您应该避免开始的事情。这里真的没有充分的理由这样做。改为使用LIMIT row_count OFFSET offset before 进行查询,然后遍历结果集。
  • 并且每次显示“一个更多”元素,你显然首先需要现在,你上次显示了多少。因此,在您的表单中添加一个隐藏的输入字段,并将您当前的计数器值放入,以便您可以在提交表单后再次访问它。
  • 您必须开始了解 Web 开发中客户端和服务器端之间的断开连接(HTTP 是一种无状态协议)以及 can be managed with sessions 是如何实现的。简而言之:您的 HTML 和 PHP 代码之间并没有您认为的那样持续的联系。

标签: php html sqlite


【解决方案1】:

您必须将$element 保存在 cookie 或会话变量中:

<?php session_start(); ?>
<?php if(isset($_POST["btn-add"])):?>
    <?php $_SESSION["element"] = isset($_SESSION["element"])?0:; ?>
    <?php for($i=0;$_SESSION["element"]<$i;$_SESSION["element"]): ?>
        <?php $statement = $pdo->query("SELECT * FROM dorayaki ORDER BY stock DESC LIMIT $element ,1"); ?>
        <?php if($row = $statement->fetch()): ?>
            <div name ="card" class = "card">
                <?php $doraId = $row["id"] ; ?>
                <p><?php print_r("Name: "."<a name='doraprice' href='detail.php?id=$doraId'>".$row["name"]."</a>"); ?></p>
                <p><?php print_r("Price: "."<a name='doraprice' href='detail.php?id=$doraId'>".$row["price"]."</a>"); ?></p>
                <p><?php print_r("Description: "."<a name='doraprice' href='detail.php?id=$doraId'>".$row["desc"]."</a>"); ?></p>
            </div>
            <?php $element++; ?>
        <?php endif; ?>
    <?php endfor; ?>
<?php endif; ?>


<form method="post">
    <input type="submit" name="btn-add" value="Add element">
</form>

【讨论】:

    猜你喜欢
    • 2022-06-15
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2015-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多