0

javascriptツールチップを含むコードと、SQLデータベースから値を呼び出すphp foreach($ result as $ row)ループがあるとします。

     <?php

   foreach ($result as $row) {
       $link = $qs->link($row,'item');
       $logoImage = $qs->getLogo($row->file_id);

       echo "<ul class=\"imggrid\"><li><a class=\"ItemLink\" href=\"$link\"><img width=\"80\" height=\"80\" src=\"" . $logoImage . "\" /></a></li></ul>";

?>
<script type="text/javascript">
  jQuery(function() {
    jQuery( document ).tooltip({ hide: "true", show: "false", 
      content: function() {
        if ( jQuery(this).is( "img[src='<?php echo $logoImage ?>']" ) ) {
          return "<img class='map' src='<?php echo $logoImage ?>'><a><?php echo $qs->abbreviate($row->title,50); ?></a>";
        }
              }
    });
  });
  </script>

<?php

   }
   ?>

これは単純化されすぎていますが、phpは画像のグリッドを吐き出します。ツールチップに、各画像のホバリング時に大きなバージョンを表示させたいと思います。現在、すべての画像のグリッドの最初の画像のみが表示されます。スクリプトがループの外にあるためだと思います。しかし、foreachループでスクリプトをスローできますか?

どんな提案や助けも素晴らしいでしょう。私はこのようなものの初心者であることを覚えておいてください。

編集:問題のコードの一部を追加しました。

編集2:さて、私はこのコードを更新しましたが、今は何も表示されていません。src = $ logoImageでimg要素を選択しているので、これでうまくいくと思いました。ここで、$logoImageはファイルのアドレスを吐き出します。

4

2 に答える 2

0
foreach ($result as $row) {
  // the echo sentence
  ?>
  <!-- script goes here -->
  <?php
}

いつでも、PHP タグを閉じて、ページへの生データ (HTML など) の出力を開始できることを覚えておいてください。

于 2013-03-01T08:50:50.627 に答える
0

id問題は、イメージ タグの属性が原因である可能性があると思います。

画像ごとに動的ID(DBからの可能性があります)を生成し、それに基づいてツールチップを調整する必要があります。

同じ id を 1 つの HTML ページで複数回使用することはできません。

于 2013-03-01T08:51:00.990 に答える