0

ポップアップのラジオ ボタンの 1 つを選択することで、削除したり、ウェブサイトのさまざまな部分で使用したりできる写真のデータベースがあります。問題は、写真をクリックするたびに、最初の写真の名前をクリックすることです。データベースは、私がクリックした画像のものではありません。どうしたの?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>同じものが常に表示されることに驚いていますか?

まあ、それは単にidが一意であるべきだからです。そして、画像を循環させる<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 属性をすべて外部スタイルシートに入れると良いかもしれません。そうすれば、後で Web ページを維持/変更するのが簡単になります。そして、それは物事をもう少し読みやすくします... :-)

于 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 に答える