未返回选定的pciture名称

时间:2013-01-30 08:07:44

标签: php mysql

我有一个带有图片的数据库,我可以删除或在网站的不同部分使用它们通过选择弹出窗口中的一个单选按钮。问题是每次我点击我点击图片的第一个名称数据库中的图片不是我点击的图片中的图片。怎么了?我使用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
}
?>

2 个答案:

答案 0 :(得分:1)

我想我理解你的问题。你点击了

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

你会惊讶地发现同样的<div>

嗯,这只是因为id应该是唯一的。如果您浏览图片,则每次都使用相同的<div> my_popup 创建新的id。点击链接(无论是哪一个),JavaScript只会使用ID为<div>的第一个my_popup。因此,您应该为每个div分配一个唯一 ID,以便您的JavaScript知道要打开哪个。您可以通过将图片ID附加到div ID来实现此目的(假设您在$data[1]中有唯一的图片ID)。

因此将其更改为(缩短):

<? 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属性放入外部样式表可能会很好,因此以后维护/更改您的网页会更容易。它使事情更具可读性......: - )

答案 1 :(得分:-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始终是相同的,因此您始终是第一个。