1

テーブルの最新の 10 行を取得し、10 回ループして、テーブルから取得した情報の一部を含む HTML を次のようなものにエコーするクエリがあります (疑似コード):

query = <GET 10 LATEST ROWS FROM TABLE>

$name = <ONE VALUE FROM TABLE>;
$name2 = <ANOTHER VALUE FROM TABLE>;

echo '<div class="style1">' . $name . '</div> <a href=""><img src="image.png" /></a> <div class="style2">' . $name2 . '</div>';

私が問題を抱えているのは、ユーザーが画像をクリックした場合、Ajax を実行して、変数 $name に基づいて別の HTML を表示する必要があることです。

問題は、テーブルから10行をエコーし​​ているため、画像がクリックされたときにその 1 つの変数の値を取得するにはどうすればよいかということです。

助けてください!

4

2 に答える 2

0

必要なグループをラップします。

PHP:

<div class="style-container">
  <div class="style1"><?=$name;?></div>
  <a href="#"><img src="image.png"></a>
  <div class="style2"><?$=name2;?></div>
</div>

次に、JS を使用してコンテナーをループし、内部の値が何であれ、引用符やその他の特殊文字の有無にかかわらず、名前を取得できます。

JS:

$('.style-container').each( function( i, el ) {

  var $el  = $(el),
      name = $el.find( '.style1' ).text();

  $el.find( 'img' ).on( 'click', function() {

    $.ajax({
      url : 'whatever.php',
      data : { name : name }
    });

  });

});

マークアップを使用することが唯一の選択肢である場合にのみ、これを行うことに注意してください。json_encodeJS タグ内のデータをエコーアウトしたい場合があります。次に、テンプレート エンジンを繰り返し使用mustacheして、マークアップを出力できます。次に、AJAX を使用して、マークアップではなくデータに基づいて URL を開くことができます。

于 2013-09-04T03:19:05.347 に答える
0

$name の値に基づいて、各 div に ID を与えます。次のステップに進むには、ajax 呼び出しに $name を使用します。

于 2013-09-04T03:19:44.900 に答える