2017-04-25 103 views
0

我想通过sql中的每个项目(有4个)迭代,但是;它只返回一个迭代。应当注意的是,所有这些信息都是在这个垂直顺序在我的PHP文件只使用onclick事件时从while循环返回一个

的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 
       } 
      } 
     ?> 

回答

0

由于有多个行返回,则需要从ID更改“hiddenDiv”一类或创建循环之外隐藏的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> 
+0

我完全忽略了这一点。非常感谢你,很高兴这是一个简单的解决方案。 :)完美的作品! – interMind

0
当你点击

showDiv按钮,它将只显示一个div,id为hiddenDiv,剩余的将被隐藏。因此,将hiddenDiv添加为类并制作了co rresponding脚本改变也

<div class="col-md-3 hiddenDiv" style="display:none;"> 
<script> 
    function showDiv() { 
     if($(".hiddenDiv").css('display') == 'none') { 
      $(".hiddenDiv").show(); 
     }else { 
      $(".hiddenDiv").hide(); 
     } 
    } 
</script> 
+0

谢谢你们了!同上解决方案。奇迹般有效。 – interMind