我正在尝试编写一个脚本,单击该脚本将返回数据库的唯一ID。我尝试阅读不同的论坛以找到解决方案,但是不幸的是,我还没有找到任何有用的方法。
<?php
$table = mysqli_query($conn ,'SELECT * FROM content');
while($row = mysqli_fetch_array($table)){ ?>
<tr id="<?php echo $row['uidContent']; ?>">
<td width="200" data-target="themeContent"><?php echo $row['themeContent']; ?></td>
<td width="300" data-target="visualIdeaContent"><?php echo $row['visualIdeaContent']; ?></td>
<td width="600" data-target="captionContent"><?php echo $row['captionContent']; ?></td>
<td width="100" data-target="dateContent"><?php echo $row['dateContent']; ?></td>
<td width="200" data-target="visualContent"><img src="<?php echo $row['visualContent']; ?>"width="200"/></td>
<td width="170">
<a class="badge badge-primary p-2" role="button" data-target="linkContent" href="<?php echo $row['linkContent']; ?>" target="_blank">Link</a>
<a class="badge badge-success p-2" href="#" data-role="update" data-id="<?php echo $row['uidContent'] ;?>">Edit</a>
<a class="badge badge-danger p-2" role="button" href="action.inc.php?delete=<?php echo $row['uidContent'] ;?>" >Delete</a>
</td>
</tr>
<?php }
?>
唯一ID通过“ data-id”存储在此代码行中
<a class="badge badge-success p-2" href="#" data-role="update" data-id="<?php echo $row['uidContent'] ;?>">Edit</a>
JavaScript
<script>
$(document).ready(function(){
$(document).on('click','a[data-role=update]',function(){
alert($(this).data('uidContent'));
});
});
</script>
我希望localhost返回唯一ID (例如,“ localhost:2066”),但是,它返回的结果是“ localhost:undefined” ... 刚开始,我认为这是数据库问题,但是现在我知道情况并非如此,因为当我检查相关按钮时会显示独特的想法。 Screenshot of the IDs
答案 0 :(得分:0)
数据参数应为data('id')
。使用$(this).data('id')
代替$(this).data('uidContent')
。
jQuery .data()在-分隔符之后接受参数。例如:如果HTML属性为
data-id="localhost: 2066"
,则要获取此属性值,我们必须像$(selector).data('id')
那样调用。
示例代码:
$(document).ready(function(){
$(document).on('click','a[data-role=update]', function() {
alert($(this).data('id'));
// ^^^^^^
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a class="badge badge-success p-2" href="#" data-role="update" data-id="localhost: 2066">Edit</a>