需要能够拉出与用户选择的产品对应的数组中的特定行

时间:2015-04-12 14:58:35

标签: javascript php arrays

我是一名初级程序员,需要小型项目网站的帮助。

我创建了一个商店并将一些产品存储在mysql数据库中。我使用foreach循环遍历数据并将每个相关内容打印成样式的Div。在foreach循环之前将数据添加到新数组中。

$sql = "SELECT name, description, price, image FROM shop";
    $result = $DBConn->query($sql);
 $data = array();
    while($row = $result->fetch_assoc()) {
        $data[] = $row;

    foreach($data as $v){
  ?>
        <div class="innerbox">
             <div class="imagebox"><img src="<?php echo $v['image'];?>" /></div>  
            div class="namebox"><?php echo $v["name"];?></div>
            <div class="pricebox">£<?php echo $v["price"];?></div>

                </div>
    <?php
     }
    ?>

使用onClick功能我可以这样做,当用户在div中点击时,它会将它们引导到产品页面。这就是我被困的地方,如何让页面知道用户点击了什么产品,只提取用户点击过的产品详细信息?

我认为它需要是某种循环来检查用户使用javascript点击的div中包含的ID是什么?

抱歉格式不佳,而不是新的。

编辑**

<div id="productimage">
                    <div class="productinner"><img src="<?php echo $v['image'];?>" /></div>
                </div>
                <div id="productdescription"><?php echo $v["description"];?></div>
                <div id="videobox"><?php echo $v["price"];?></div>
<?php

我是否需要在产品页面上显示此代码?或?

$sql = "SELECT name, description, price, image FROM shop";
    $result = $DBConn->query($sql);
 $data = array();
    while($row = $result->fetch_assoc()) {
        $data[] = $row; // Adds each row to a new array
    }

1 个答案:

答案 0 :(得分:1)

您可以在div上设置data-id属性:

    <div class="innerbox" data-id="<?php echo $v['id']; ?>">
         <div class="imagebox"><img src="<?php echo $v['image'];?>" /></div>  
        div class="namebox"><?php echo $v["name"];?></div>
        <div class="pricebox">£<?php echo $v["price"];?></div>

    </div>

使用jQuery可以轻松获取数据:

$('.innerbox').click(function() {
    window.location.href = "product.php?id=" + $(this).data('id');
});

在php中,您可以使用$_GET['id']

访问ID
$sql = "SELECT name, description, price, image FROM shop WHERE id = " . intval($_GET['id']);