0

我在 Zend Framework 中有一个项目,该项目在页面上有一个菜单,其中包含按类别排序的所有产品。我想制作一个带有产品名称和描述的弹出窗口。这应该在每次点击产品时显示。我将此代码用于弹出窗口:

<script type="text/javascript">
 function show_popup(id) {
if (document.getElementById){
    obj = document.getElementById(id);
    if (obj.style.display == "none") {
        obj.style.display = "";
    }
}
}
function hide_popup(id){
if (document.getElementById){
    obj = document.getElementById(id);
    if (obj.style.display == ""){
        obj.style.display = "none";
    }
 }
}
</script>

<div id="my_popup" style="display:none;border:1px dotted gray;padding:.3em;background-color:white;position:absolute;width:400px;height:400px;left:10px;top:300px">
                                                <div align="right">
                                                        <a href="javascript:hide_popup('my_popup')">Close</a>
                                                </div>
                                                        <h3>Product Name</h3>
                                                        <p>Product description</p>
                                        </div>

问题是它适用于静态文本。我的产品是从数据库中获取的,如下所示:

<?php foreach ($products as $product):?>
 <a href="javascript:show_popup('my_popup')"> <?php echo $product['front_name'];?></a>
<?php endforeach;?>

因此,我在每个标题上都有一个弹出窗口的链接,但我想打印在该弹出窗口中单击的产品名称和描述,但我不知道如何验证单击的是哪个产品。我正在考虑发送一些参数,但我不知道该怎么做。如果您对我的问题有一些解决方案,请告诉!谢谢

I've tried to put my **<div id="my_popup>**  in foreach, but it doesn't work because my pop-up windows does not appear anymore.
4

1 回答 1

0

我在使用 Jquery 时遇到了同样的问题,我的解决方案是通过提供产品的 id 来调用 JS 函数,以便它是唯一的,并与字母数字连接(因为 js 不只接受 DIV 中的数字):例如(在你的环形):

<?php $id_for_div="unique_id_".$product['id'];
      $id_product=$product['id'];?>

然后将该新 id 传递给 JS 函数 showPopup('<?=$id_product?>');并且 DIV 的 id 必须是:<div id='<?id_for_div ?>' ..>..</div>

然后在您的 JS 函数中,您可以获得新参数并根据它执行人员操作(在 Jquery 中,showPopup(id){ $('#unique_id_'+id).....} 我希望它有所帮助。

于 2013-06-06T10:29:01.567 回答