javascript - 使用 onclick 事件时仅从 while 循环中获得一次返回

标签 javascript php mysql onclick

但是,我正在尝试迭代 sql 中的每个项目(有 4 个);它只返回一次迭代。应该注意的是,所有这些信息在我的 PHP 文件中都按垂直顺序排列

JavaScript

<script>
    function showDiv() {
        if($("#hiddenDiv" ).css('display') == 'none') {
            $("#hiddenDiv" ).show();
        }else {
            $("#hiddenDiv" ).hide();
        }
    }
</script>

HTML

<div class="panel-heading">
   <span>Checkout</span>
      <button onclick="showDiv()" class="btn btn-warning pull-right">
   <span class="glyphicon glyphicon-chevron-down"></span>
      </button>
</div>

PHP

       <?php            
            $query = "SELECT * FROM products ORDER BY id ASC";
            $result = mysqli_query($connect, $query);
            if(mysqli_num_rows($result) > 0)
            {
                while($row = mysqli_fetch_array($result))
                {        

        ?>
            <div class="col-md-3" style="display:none;" id="hiddenDiv">
                <form method="post" action="shop.php?action=add&id=<?php echo $row['id']; ?>">
                <div style="border: 1px solid #eaeaec; margin: -1px 19px 3px -1px; box-shadow: 0 1px 2px rgba(0,0,0,0.05); padding:10px;" align="center">
                <?php echo "<img src=\"imeg/". $row["image"] . "\" " . "class=\"img-responsive\">"; ?>
                <h5 class="text-info"><?php echo $row["p_name"]; ?></h5>
                <h5 class="text-danger">$ <?php echo $row["price"]; ?></h5>
                <input type="text" name="quantity" class="form-control" value="1">
                <input type="hidden" name="hidden_name" value="<?php echo $row["p_name"]; ?>">
                <input type="hidden" name="hidden_price" value="<?php echo $row["price"]; ?>">
                <input type="submit" name="add" style="margin-top:5px;" class="btn btn-default" value="Add to Cart">
                </div>
                </form>
           </div>

        <?php
                }
            }
        ?>

最佳答案

由于返回多行,您需要将“hiddenDiv”从 id 更改为类或在循环外创建隐藏 div

<div id="hiddenDiv" style="display:none;">

       <?php            
            $query = "SELECT * FROM products ORDER BY id ASC";
            $result = mysqli_query($connect, $query);
            if(mysqli_num_rows($result) > 0)
            {
                while($row = mysqli_fetch_array($result))
                {        

        ?>
            <div class="col-md-3" >
                <form method="post" action="shop.php?action=add&id=<?php echo $row['id']; ?>">
                <div style="border: 1px solid #eaeaec; margin: -1px 19px 3px -1px; box-shadow: 0 1px 2px rgba(0,0,0,0.05); padding:10px;" align="center">
                <?php echo "<img src=\"imeg/". $row["image"] . "\" " . "class=\"img-responsive\">"; ?>
                <h5 class="text-info"><?php echo $row["p_name"]; ?></h5>
                <h5 class="text-danger">$ <?php echo $row["price"]; ?></h5>
                <input type="text" name="quantity" class="form-control" value="1">
                <input type="hidden" name="hidden_name" value="<?php echo $row["p_name"]; ?>">
                <input type="hidden" name="hidden_price" value="<?php echo $row["price"]; ?>">
                <input type="submit" name="add" style="margin-top:5px;" class="btn btn-default" value="Add to Cart">
                </div>
                </form>
           </div>

        <?php
                }
            }
        ?>
</div>

<script>
    function showDiv() {
        $("#hiddenDiv" ).slideToggle();

    }
</script>

关于javascript - 使用 onclick 事件时仅从 while 循环中获得一次返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43601361/

相关文章:

php - 如何将此数据插入mysql php

php - 包含日期和时间的字段不会与 Laravel 中的另一个进行比较

PHP SQLSTATE[HY000] [1045] 用户 Laravel 访问被拒绝

javascript - Socket.io,从客户端获得两个响应然后运行代码?

javascript - 即使将更新的值从父级传递给子级后,子级也不会呈现

javascript - 为什么开始选择了关闭按钮

php - 防止 WordPress 的默认输入清理

php - PFBC(Php 表单生成器类)可以提交 JSON 对象吗?

php - 调试 AJAX 到 PHP 调用的最佳方法是什么?

php - CakePHP 2.0 - 从某个结果集中获取具有特定参数的结果计数