单击图像后从数据库中获取值

时间:2013-09-04 03:12:25

标签: php mysql ajax jquery

我有一个查询,它获取表中最新的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 行,如何在单击图像时获取该变量的值?

请帮忙!

2 个答案:

答案 0 :(得分: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 }
    });

  });

});

注意如果使用标记是您唯一的选择,我只会这样做。您可能希望在JS标记内回显json_encode个数据。然后,您可以迭代并使用mustache之类的模板引擎来打印标记。然后,您可以使用AJAX根据数据而不是标记打开URL。

答案 1 :(得分:0)

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