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行,当单击图像时如何获取该变量的值?

请帮忙!

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_encode在 JS 标记内回显数据。然后,您可以迭代并使用模板引擎mustache,例如打印出标记。然后您可以使用 AJAX 根据数据而不是标记打开 URL。

于 2013-09-04T03:19:05.347 回答
0

根据 $name 的值给每个 div 一个 id。并且您使用 $name 进行 ajax 调用以进行下一步。

于 2013-09-04T03:19:44.900 回答