为PHP生成的div创建唯一标识符?

时间:2015-08-05 02:48:44

标签: php jquery html mysql

不确定最好的解决方法,但实质上我使用PHP从帖子的SQL数据库中提取,在for循环中执行。到目前为止,这是我的代码:

$sql = "SELECT *FROM $tbl_name";
$lastPostID = mysql_num_rows(mysql_query($sql))-1;

//CREATE BLOG POSTS
for ($currPostID = $lastPostID; $currPostID >= 0; $currPostID--){
       $sqlQuery =  "SELECT title, content FROM $tbl_name WHERE postID = '$currPostID'";
       $title = mysql_fetch_array(mysql_query($sqlQuery))['title'];
       $content = mysql_fetch_array(mysql_query($sqlQuery))['content'];
       echo '<div class = "row">';
            echo '<div class = "col-md-12">';
                  echo '<h4 class = "widget-title">' .$title. '</h4>';
                  echo '<p>' .nl2br($content). '</p>';
                  echo '<hr class = "blogborder">';
            echo '</div>';
       echo '</div>';
}

如您所见,我将SQL数据库中的每个条目放入页面上自己的div容器中。但是,我也在想,将来我会创建一个&#34;编辑&#34;这些帖子的功能,要求我能够唯一地识别我的SQL数据库中的帖子。

现在我正在考虑添加一个额外的div容器,仅用于存储每个帖子的postID(这是SQL中的主键)。因此,在for循环中,会有一个额外的行:

echo '<div class = "idNum">' .$postID. '</div>';

沿着这些方向的东西(最终通过CSS在视觉上隐藏),然后使用jQuery使用this.val()获取ID值,这将允许我运行编辑帖子的AJAX查询。

然而,我觉得有更好,更清洁的方法来做这件事,并想知道你们是否有任何意见?

1 个答案:

答案 0 :(得分:2)

无需额外元素。在每个重复模块上使用data-属性。

使用jQuery data()方法

可以轻松读取这些内容
echo '<div class = "row" data-id="' .$postID. '">';

然后举个例子可以使用:

$('.widget-title').click(function(){
    alert( $(this).closest('.row').data('id') );
 });