0

我有一个包含图片的数据库,我可以通过在弹出窗口中选择一个单选按钮来删除或在网站的不同部分使用它们。问题是每次点击图片时,我点击图片中第一张图片的名称数据库出现不是我点击的图片中的那个。怎么了?我使用 PHP 5.3 和 HeidiSQL

<?php

// ...

$result=mysql_query("SELECT * FROM imagini WHERE menu_id=6");

while($data=mysql_fetch_row($result)){ ?>

    <div class="tag">
            <div id='container_poze_originale'>

                <a href="javascript:show_popup('my_popup')" class="buton">Alege alt rol </a>    

                <div id="my_popup" style="display:none;border:1px dotted gray;padding:.3em;background-color:white;position:absolute;width:auto;left:100px;top:100px">
                    <a href="javascript:hide_popup('my_popup')">close</a>

                    <form action="popup.php" method="post" >
                        <input type="text" name="alt-rol" value="<?php echo $data[1];?>"  /> //always returns the name of the first picture in the database not the one i select
                        <input type="submit" value="Adauga imagine" class="buton_imagine"  />
                        <div class="radio">
                                <input type="radio" name="tip_imagine" value="0"/><label for="tip_imagine" class="radio2">Logo</label>
                                <input type="radio" name="tip_imagine" value="1"/><label for="tip_imagine" class="radio2">Slider</label>
                                <input type="radio" name="tip_imagine" value="2"/><label for="tip_imagine" class="radio2">Hot destinations</label>
                                <input type="radio" name="tip_imagine" value="3"/><label for="tip_imagine" class="radio2">Pachete</label>
                                <input type="radio" name="tip_imagine" value="4"/><label for="tip_imagine" class="radio2">Reclama</label>
                                <input type="radio" name="tip_imagine" value="5"/><label for="tip_imagine" class="radio2">Background</label>
                        </div>
                    </form>
                </div>  

                <div class="imagine_originala">
                        <img src= "../upload/original/<?php echo $data[1];?>"   /></a>  
                </div>

                <div class="Btag" style="display:none;">

                    <div id="buton_slide4" >
                        <a href="delete.php?id_imagini=<?php echo $data[0];?>&nume_imagini=<?php echo $data[1]?>&id_menu=<?php echo $data[2]; ?>" class="buton">Sterge</a></td>
                    </div>

                </div>

            </div>

    </div>  

<?php
}
?>
4

2 回答 2

1

我想我理解你的问题。你正在点击

<a href="javascript:show_popup('my_popup')" class="buton">Alege alt rol</a>

你很惊讶<div>总是出现同样的情况吗?

好吧,这仅仅是因为 anid应该是唯一的。如果你循环浏览你的图像,你<div>每次都会创建一个新的idmy_popup。当点击链接时(无论是哪一个),JavaScript 都会选择<div>它找到的第一个带有 id 的链接my_popup。所以你应该只为每个分配一个唯一的id,div这样你的 JavaScript 就知道要打开哪个。您可以通过将图像 id 附加到 div id 来做到这一点(假设您在 中具有唯一的图像 id $data[1])。

所以将其更改为(缩短):

<? while($data=mysql_fetch_row($result)) { ?>
      <div class="tag">
         <div id="container_poze_originale">
            <a href="javascript:show_popup('my_popup<?=$data[1]?>')" class="buton">Alege alt rol</a>    

            <div id="my_popup<?=$data[1]?>" style="display:none;border:1px dotted gray;padding:.3em;background-color:white;position:absolute;width:auto;left:100px;top:100px">
              ...
            </div>
         </div>
      </div>
<? } ?>

哦,将所有这些巨大的内联 CSS 属性放入外部样式表可能会很好,这样以后维护/更改您的网页会更容易。它使事情更具可读性...... :-)

于 2013-01-30T08:53:24.040 回答
-1

我认为当您单击收音机时您的表单可以,但当您单击标签时则不行。标签的 for 属性需要一个 ID 作为参考,如下所示:

<input type="radio" name="tip_imagine" value="0" id="tip0" /><label for="tip0" class="radio2">Logo</label>
<input type="radio" name="tip_imagine" value="1" id="tip1"/><label for="tip1" class="radio2">Slider</label>
<input type="radio" name="tip_imagine" value="2" id="tip2"/><label for="tip2" class="radio2">Hot destinations</label>
<input type="radio" name="tip_imagine" value="3" id="tip3"/><label for="tip3" class="radio2">Pachete</label>
<input type="radio" name="tip_imagine" value="4" id="tip4"/><label for="tip4" class="radio2">Reclama</label>
<input type="radio" name="tip_imagine" value="5" id="tip5"/><label for="tip5" class="radio2">Background</label>

使用您的实际代码,FOR 始终相同,因此您始终是第一个。

于 2013-01-30T08:16:12.843 回答